CS/Network
-
[Network] Dynamic Host Configuration Protocol(DHCP)CS/Network 2021. 12. 11. 20:38
어떻게 호스트가 처음에 네트워크 부팅을 할까 ❔❔ *부트스트랩(bootstrap): 한 번 시작되면 알아서 진행되는 일련의 과정을 뜻한다. 호스트가 처음 네트워크에 연결하기 위해서는 자신의 IP 주소, 로컬 DNS 서버의 주소, 게이트웨이(first-hop router)의 주소 등을 알아야 한다. 이는 호스트가 직접 설정할 수 있지만, 보통 우리는 자동으로 설정되는 것을 기대한다. 👉 이를 해결해 주는 것이 Dynamic Host Configuration Protocol(DHCP)다!!! DHCP DHCP란 ❔❔ DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말한다. DHCP는 네트워크에 사용되는 IP주소를 DHCP서버가 중앙집중식으..
-
[Network] IP 주소 체계와 SubnetCS/Network 2021. 12. 11. 18:17
Network-layer의 Data plane에서는 무슨 일이 일어나는지 알아보자! Network-layer의 역할 network-layer는 들어오는 패킷을 어떤 링크로 내보낼지 결정하는 역할을 한다. 이러한 기능을 라우터가 담당한다. 라우터는 들어오는 모든 IP 데이터그램의 헤더를 보고 어떤 output port로 내보낼지 결정하고 전송한다. 이를 Routing과 Forwarding이라고 말한다. Routing & Forwarding Routing(control plane) 라우팅은 출발지에서 도착지까지 패킷의 route(전체 경로)를 결정하는 역할을 한다. 라우팅은 네트워크 전역에서 일어나며, routing algorithm을 통해 이루어진다. Control plane은 두가지 approach가 있..
-
[Network] DNS 동작 원리CS/Network 2021. 9. 29. 12:51
DNS (Domain Name System) DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소(IP)로 바꾸거나 그 반대의 변환을 수행하는 시스템이다. 분산 데이터베이스를 사용한다. 계층 구조를 가지고 있다. DNS 서버는 네 가지 카테고리, 즉 Local DNS name server, Root dns server, Top-level domain(TLD) server, Authoritative DNS server로 분류된다. 캐싱이 없는 일반적인 DNS 조회에서는 이 네 가지 DNS 서버가 함께 작동하여 지정된 도메인의 IP주소를 클라이언트에게 전달하는 작업을 완료한다. Root DNS server Root DNS server는 요청받은 쿼리의 도메인의 확장자(.com, .net, .org ...)..
-
[Network] HTTP vs HTTPSCS/Network 2021. 9. 29. 11:49
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. HTTP(Hypertext Transfer Protocol) 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. HTTP 동작 클라이언트가 브라우저를 통해서 어떠한 서비스를 URL을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다. HTTP 특징 TCP를 사용한다. stateless 서버는 클라이언트의 요청(request)에 대한 정보를 유지하지 않는다. → 서버에는 수많은..
-
[Network] TCP vs UDPCS/Network 2021. 9. 28. 23:30
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. TCP(Transmission Control Protocol) TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 이다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 바이트 스트림을 안정적으로, 순서대로, 에러없이 전송할 수 있게 한다. 특징 연결형 서비스: 가상 회선 방식 제공 3-way handshake를 통해 연결 성립(Establishment) 4-way ha..
-
[Network] TCP 연결과 해제CS/Network 2021. 9. 28. 20:07
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. 연결 성립 (Connection Establishment) SYN(Synchronize): 클라이언트는 서버에 접속을 요청하는 SYN 플래그 비트가 설정된 세그먼트를 보낸다. 해당 세그먼트는 통신의 시작을 알리며, 세그먼트 내 순서 동기화를 위한 Sequence number인 M(임의명)를 담아 보낸다. 이때 클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYS_SENT 상태가 된다. SYN + ACK(Acknowledgement): 서버는 클라이언트의 요청인 SYN(M)을 받고 클라이언트에게 ..
-
[Network] HTTP Methods - GET, POST, PUT, PATCH, DELETECS/Network 2021. 9. 27. 23:13
이 포스팅은 세미나를 위해 https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network를 참고하여 작성하였습니다. HTTP를 사용하여 데이터가 서버로 전달될 때 method라는 속성을 반드시 가지게 된다. method는 데이터를 보내는 목적을 표시해주는 역할을 하고, method에 따라 서버에서 데이터를 다르게 처리한다. GET 서버로 resource를 요청할 때 사용 서버의 resource는 클라이언트로 전달만 될 뿐 변경되지 않음 GET method로 데이터를 보내려면 URL 뒤에 붙여 보낼 수 있음 ex) www.example.com?id=test&password=1234 key, value 쌍으로 데이터를 넣어야..
-
[Network] Cookie와 SessionCS/Network 2021. 9. 15. 15:21
HTTP는 stateless이기 때문에 server는 client의 상태 정보를 유지하지 않는다. 하지만 최근 웹사이트를 확인해보면 로그인 정보를 저장하거나, 쇼핑몰 장바구니에 내가 이전에 넣어놨던 제품이 있는 등 상태를 가지고 있는 형태를 보인다. 이렇게 stateful 통신을 가능하게 하는 방식이 쿠키와 세션이다. 쿠키 (Cookie) 쿠키란? 쿠키는 key, value 형태로 클라이언트 로컬에 저장된다. 쿠키 만료 시간을 명시할 수 있으며, 만료 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다. 클라이언트에 총 300개의 쿠키를 저장할 수 있고, 하나의 도메인 당 20개의 값만 가질 수 있다. 하나의 쿠키는 4KB까지 저장 가능하다. Response header에 Set-Cookie 속성을 사..