본문으로 바로가기

Transport Layer (TCP/IP)

category MLOps/Network 2022. 1. 6. 14:49

TCP/IP

4. Application

3. Transport

2. Internet

1. Network Interface


Transport Layer

- 여러 컴퓨터로부터 받은 데이터를 transport layer에서 분류하고 application layer의 각각의 프로그램에 전달

- 분류 기준은 port 번호로 application 구분

- TCP: 데이터가 정확하게 전달되어야 하는 통신 (웹, 이메일)에 사용되는 프로토콜

- UDP: 전송 속도가 빨라야 하는 통신 (VoIP, 동영상 스트리밍)


Port Number

- transport layer의 protocol은 packet의 port 번호를 보고 해당되는 application으로 packet을 전달함

 

1. 범위

- 0 ~ 65525번

- well-known ports: 서버 프로그램이 수신 대기할 때 사용하는 포트 (0 ~ 1023번)

- registered ports: 벤더가 할당받아 사용하는 포트 (1024 ~ 49151번)

- dynamic ports: 클라이언트 프로그램이 사용하는 포트 (49152 ~ 65535번); 클라이언트가 사용하는 포트 번호는 그때마다 다름

 

2. 과정

1) 클라이언트가 사용할 포트 결정; ex) 49155

- Ip 주소와 조합하여 사용

2) 서버의 포트에 접속 ex) 80

3) 통신이 종료되면 클라이언트는 포트 반납


Transmission Control Protocol (TCP)

- transport layer의 protocol 중 하나로 정확한 데이터 전달이 필요한 통신에 사용

- 신뢰성을 위해 데이터를 segment 단위로 분할, 속도 조종, 재전송 실시

- 일련번호와 최대 세그먼트 크기 (MSS; Maximum Segment Size)를 커넥션을 맺을 때 조율 실시

- 연속된 데이터를 몰아서 보내 전송 속도를 높임 (단, 동일한 확인응답 번호가 3번 연속이면 전송 실패로 간주)

- Buffer: 수신 측에서 수신한 데이터를 일시적으로 보관하는 영역

- flow control: 수신 측은 응답을 보낼 때 TCP header의 window size를 설정해 알려줌

- window probe: buffer가 가득차면 전송은 잠시 멈추고 송신 측에서 window probe를 보내 window size 파악하여 재개 여부 결정

- Selective ACKnowledgement (SACK): 송수신 측 모두 지원할 경우 중간에 누락된 패킷만 재전송 가능

1. TCP 헤더의 구조

출처: http://www.ktword.co.kr/test/view/view.php?m_temp1=1889

- sequence  number: 송신한 바이트 수

- acknowledgement number: 수신한 바이트 수

- data offset (HLEN): TCP 헤더의 길이

- checksum: 데이터 훼손 확인 정보

- window size: 한번에 수신할 수 있는 데이터 크기

- control bits: 현재 통신 상태를 표현하는 플래그 / TCP 통신을 제어하는 용도로 사용

ex) URG, ACK, PSH, etc.

 

2. 3-way handshake

- 커넥션 연결을 통해 데이터를 전송할 수 있는 상태로 만드는데 3-way handshake를 사용

- SYN: 통신시작 시 ON

- FIN: 통신종료 시 ON

- ACK: 데이터가 도착했는지 확인응답하는 플래그로 ACK ON 응답이 돌아오지 않으면 전송 실패를 의미


User Datagram Protocol (UDP)

- TCP에 비해 간단한 protocol

- 통신과정에서 데이터 손실이 발생해도 문제없는 서비스에 사용 (동영상 스트리밍 등)

- broadcast, multicast 기능을 사용해 하나의 패킷을 여러 수신지에 전달

- UDP를 사용해 통신하는 application layer에 안정성을 위해 flow control, congestion control 기능으로 신뢰성 보완

 

1. UDP 헤더의 구조

출처: http://www.ktword.co.kr/test/view/view.php?nav=2&no=323&sh=udp

- UDP length: 헤더 길이와 데이터 길이의 합

- checksum: 데이터 훼손 확인 정보

'MLOps > Network' 카테고리의 다른 글

Network Interface Layer (TCP/IP)  (0) 2022.01.07
Internet Layer (TCP/IP)  (0) 2022.01.06
Application Layer (TCP/IP)  (0) 2022.01.05
컴퓨터 네트워크  (0) 2022.01.04