[Web] 네트워크의 기초

Gogh·2023년 1월 2일
0

Web

목록 보기
7/8

🎯 목표 :  네트워크를 구성하는 기술들의 기초 개념을 이해한다.

📒 TCP/IP 네트워크 스택의 기초

📌 Lan 과 WAN

  • 라우터에 연결되어 좁은 범위를 칭하는 LAN(Local Area Network)
  • LAN들이 모여 WAN(Wide Area Network)가 구성된다.
  • 통신 서비스를 제공하는 통신사들을 ISP라고 한다.

📌 프로토콜(Protocol)

  • 네트워크에서 소통을 하기 위한 규칙, 약속

📌 TCP / IP

  • TCP(Transmission Control Protocol) 와 IP(Internet Protocol)
  • 네트워크에서 정보를 주고 받는데 쓰이는 통신 규약의 모음.
  • TCP는 연결 지향적 프로토콜로, 데이터 전송 표적 기기 까지의 전송을 보장한다.
  • 전송하는 패킷의 순서가 보장된다.

📌 식별자

  • Port는 프로세스, 어플리케이션에 대한 식별자다.  Sockets에 바인딩 되며 각 소프트 웨어를 구분한다.
  • IP는 호스트에 대한 식별자다, Host는 인터넷에 연결된 컴퓨터라고 생각하면 된다.
    하나의 컴퓨터에 여러개의 IP 가능.
  • MAC 주소는 네트워크 인터페이스 카드에 대한 식별자다, NIC 또는 랜카드의 식별자
    MAC 주소 변경 가능.

📌 네트워크의 흐름

  • 네트워크는 라우터의 집합체다. 네트워크를 하나의 고속도로라고 생각한다면,
  • Switch는 교차로가 되고, Switching는 경로 선택(인터페이스 선택)을 하는 행위가 된다.
  • 고속도로에서의 경로 선택의 기준은 이정표인데, 네트워크의 경로 선택 기준은 Routing Table(라우팅 테이블)이다.
  • 교차점은 라우터고, 패킷은 자동차로 비유 될수 있겠다.
  • 패킷은 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터로 이루어지며, 이는 페이로드 라고도 한다.
  • 인터페이스의 선택 기준은 메트릭이 기준이 되는데, 메트릭이란 경로 상의 네트워크 또는 라우터들을 거쳐가는데 필요한 비용이라 생각하면 될것 같다. 메트릭이란?

📌 네트워크에서 데이터 전송 Layer

A

  • 크게 유저영역 커널 영역 디바이스 영역으로 나눌수 있다. 유저와 커널 영역은 CPU가 작업을 수행한다.
  • 유저와 커널 영역은 디바이스 영역과 구별 하기위해 호스트(Host)라고 부른다.
  •  NIC(Network Interface Card)은 패킷을 송수신 하는 H/W 다. = 랜카드
  • 각 Layer 수준에서 다루는 데이터 단위를 간단히 보면, 
    • Socket 레이어 수준에서 다루는 데이터 단위는 Stream 이라고 표현하며 Socket에서 일시 저장하는 Buffer(메모리)가 있다.
    • TCP 레이어 수준에서 다루는 데이터 단위는 Segment라고 표현하며, Stream에서 MSS(Maximum Segment Size) 단위로 분해된 데이터다. TCP 레이어에서도 데이터를 일시 저장하는 Buffer가 존재한다.
    • IP 레이어 수준에서 다루는 데이터 단위는 Packet이라한다. Segment가 전송되기 위해 Source IP와 Destination IP가 포함된 IP Header가 붙은 형태의 메세지다. Segment, Packet, Frame 들의 데이터에서 Header를 제외한 나머지 데이터를 페이먼트라고 한다.
    • NIC 레이어 에서 다루는 데이터 단위를 Frame이라고 한다. Packet이 인캡슐레이션 된 형태로 MAC 주소를 포함한 Header가 붙은 메세지로 볼수 있겠다.
  • 데이터 전송의 흐름을 간단하게 풀어보면, Stream이 TCP 레이어에서 MSS 단위로 분해되어 Segment가 되고, 이 데이터는 IP에서 전송 가능한 Packet이 된다. Packet은 최종 적으로 전송하기 위해 NIC단에서 Frame으로 Encapsulation되어 전송되어 진다.
    이때, MSS단위를 정하는 기준은 MTU(Maximum Transmission Unit)이며 Ethernet 환경의 경우 MTU의 기본값은 1500 Byte다.

📌 네트워크에서 데이터 수신 Layer

a

  • 데이터 수신의 경우 전송의 과정에서 Frame을 역으로 데이터를 Receive한 NIC이 Decapsulation 하여 Packet 상태로 호스트의 메모리(TCP가 가지고있는 Buffer)로 전달해준다.
  • 메모리에 저장되기 전 Packet는 Segment가 되어 Receive TCP Buffer에 저장되며, 이후에 Segment들이 모여 Stream이 되고 데이터가 Receive Socket Buffer에 추가 한다 이때, TCP에서는 전송된 네트워크로 Buffer에 남아있는 메모리(Window Size)와 SYN(Synchronize Sequence Number), ACK(Acknowledgement) 패킷을 다시 전송하여, 유효한 전송을 받았다는 응답을 해준다.
  • 이때, 이 응답을 받는 수신측 네트워크에서는 응답을 받기 전까지 속도 지연이 발생하며, 응답을 받고 난 이후에 메세지를 확인하고 다시 ACK를 전송 받는 네트워크에 재 전송하면서 신뢰성 있는 연경이 성립 되었다는 사실을 양측 네트워크에서 알수 있게 되고 실제 데이터들의 전송이 시작된다.
  • 데이터가 처음 전송 되고 데이터를 수신한, 수신측 네트워크에서 ACK를 응답하게 되고 응답받은 전송측 네트워크에서 다시 ACK를 재 전송하는 과정을 TCP 3-way handshake라고 한다. 

📌 vs UDP(User Datagram Protocol)

  • 데이타크램 지향적 프로토콜
  • 표적 기기까지의 전송이 보장되지 않는다.
  • 패킷 순서 보장이 안된다. 패킷 순서를 보장하려면 애플리케이션 레이어에서 관리 되어야 한다.
  • TCP와 비교해 빠르고 , 단순하며, 더 효율적인 속도를 가지고 있다.
  • TCP 3-way handshake가 없는 UDP는 예비 과정 없이 바로 전송을 시작한다. 설정 단계에서 발생하는 지연이 없는 만큼, 반응속도가 빠르다. TCP가 신뢰성을 위해 많은 파라미터와 정보 전달이 필요함에 비교해 UDP는 연결설정 관리를 하지 않기 때문에 어떠한 파라미터도 기록하지 않는다. 이때문에 서버에서는 TCP와 비교해 더 많은 클라이언트를 수용 가능하다.

Reference :

https://d2.naver.com/helloworld/47667

profile
컴퓨터가 할일은 컴퓨터가

0개의 댓글