donaricano-btn

레이어4(Layer4) - 전송계층프로토콜 TCP

- 소켓기록된 애플리케이션 데이터 커널 내에서 통신 대상에게 전달하기 위한 준비를 시작한다

- 첫번 째 임무 수행하는 것이 전송 계층 프로토콜인 TCP이다


1. TCP의 역할

1) 애플리케이션이 보낸 데이터를 그형태 그대로 상대방에게 확실히 전달한다

2) 담당

- 서버가 송신할 때와 서버가 수신한 후 애플리케이션에게 전달할 때로, 상대 서버까지 전송하는 부분은 하위 계층인 IP에게 모두 위임한다

- IP만으로 통신 할 수 있지만, IP에는 데이터가 상대방에게 확실히 전달됐는지 확인하는 기능이나 도착한 순서를 확인하는 기능이 없다

3) 기능

- 포트 번호를 이용해서 데이터 전송

- 연결생성

- 데이터 보증과 재전송 제어

- 흐름 제어와 폭주 제어


2. OS의 커널안에서 TCP 처리 흐름

1) 애플리케이션 프로세스가 소켓에 데이터를 기록한다

2) 소켓에 기록된 데이터는 큐를 경유해서 커널 내 네트워크 처리 부분에 전달된다

3) 커널에 전달된 데이터는 '소켓 버퍼'라는 메모리 영역에서 처리된다

4) 데이터에 TCP 헤더를 붙여 TCP 세그먼트를 생성한다

5) 하나의 TCP 세그먼트로 전송할 수 있는 최대 크기를 MMS라고 한다


3. TCP 세그먼트(TCP segment)

1) TCP Segment(TCP Packet) : 데이터(data) + TCP 헤더

2) TCP 헤더(TCP Header)

- 도착 지점 포트 번호, TCP 기능을 표현하기 위한 정보


3) MSS(Maximum Segment Size) 

- 하나의 TCP 세그먼트로 전송 할 수 있는 최대 데이터 크기

- 링크 계층으로 사용해서 데이터를 전송 하기 때문에 MSS는 링크 계층에서 전송 할 수 있는 최대 크기에 의존하며, 환경이나 설정에 따라 달라진다

4) MTU(Maximum Transfer Unit)

- 링크 계층에서 전송 할 수 있는 최대 데이터 크기

5) 세그먼트 분할

- 예로 2000byte의 데이터가 애플리케이션에 등록된다면 MSS의 크기가 1460byte이기 때문에 세그먼트는 1460과 540으로 분할 된다



블로그 이미지

리딩리드

,