THIS IS ELLIE

트랜스포트 계층 TCP 본문

공부/CS

트랜스포트 계층 TCP

Ellie Kim 2019. 7. 30. 16:13

TCP/IP에서 트랜스포트 계층은 애플리케이션 계층과 인터넷 계층 사이에 위치한다.

인터넷 계층의 역할이 데이터를 수신지 컴퓨터까지 전달하는 것이라면,

트랜스포트 계층의 역할은 컴퓨터가 받은 데이터를 애플리케이션까지 전달하는 것이다.

 

트랜스포트 계층의 TCP 프로토콜은

- 수신지에 데이터가 정확하게 전달되도록 전송 속도를 조절하거나 도달하지 않은 데이터를 재전송한다.

- 수신지의 통신 환경에 맞춰 데이터 크기를 정하거나 연속된 데이터를 몰아서 보낼 개수를 정한다.

- 도달하지 않은 패킷이 있다면 재전송을 요청한다.

 

트랜스포트 계층에는 인터넷 계층에서 전달한 다양한 종류의 패킷이 들어온다.

이 패킷들은 애플리케이션 계층에 있는 애플리케이션들에게 각각 전달되어야 하는데,

이때 어느 애플리케이션으로 보내져야 할지는 포트번호를 알 수 있다. 

(잘 알려진 포트번호는 80 = HTTP 웹, 22 = SSH 원격 제어 등등 존재) 

(서버 측에서 사용하는 포트는 미리 정해져있음)

 

TCP 헤더의 구조는 아래와 같이 되어있다.

 

TCP 헤더 중 컨트롤 비트(위에서 네번째 줄 ex URG ACK PSH RST SYN FIN)는 현재의 통신 상태를 표현하는 플래그 역할을 하며,

통신 상대에게 이 정보를 전달해서 TCP통신을 제어하는 용도로 사용한다.

9개의 플래그 각각은 1비트 크기를 차지하며 ON/OFF 두 가지 상태를 표현한다. 

 

컨트롤 비트 종류

CWR - 통신 경로가 혼잡해서 전송량을 줄여줄 것을 알려준다.

ECE - 통신 경로가 혼잡해서 수신할 수 없을 수도 있다는 것을 알려준다.

URG - 긴급 포인터에서 지정한 데이터를 즉시 처리해야 한다는 것을 알려준다.

ACK - 이전 동작을 확인했다는 것을 알려준다.확인 응답 번호와 조합해서 사용된다.

PSH - 수신 데이터를 즉시 애플리케이션 계층에 전달해야한다는 것을 알려준다.

RST - 이상 상황이 발생하여 접속이 강제 중단되었다는 것을 알려준다.

SYN - 접속을 시작할 때 ON으로 설정한다.

FIN - 데이터 송신이 완료되어 통신을 종료하고 싶다는 것을 알려준다. 

 

Q. TCP 통신은 어떻게 이루어질까

A. TCP 통신은 커넥션 연결에서 시작한다.

커넥션을 맺는 과정은 3단계로 진행되기 때문에 이것을 3방향 핸드셰이크라고 부른다.

커넥션이 맺어지면 데이터를 전송할 수 있는 상태가 되고, 데이터 전송이 끝나면 커넥션을 끊는다. 

 

커넥션 연결하기 3 way handshake

통신을 시작하고 싶을 때 SYN을 ON으로 설정하고 통신을 끝내고 싶을 때 FIN을 ON으로 설정한다.

호스트 A는 SYN패킷을 서버에 보내 연결을 시작한다.

패킷에는 데이터에 대한 일련 번호의 시작을 표시하는 수인 5433이 들어있다.

 

서버는 패킷을 수신하고 시퀀스 번호 1증가 시켜 응답한다. 

 

호스트 A는 시퀀스 번호를 1 증가시켜 전송해 서버의 응답을 확인한다. 

 

커넥션 연결 끊기 4 way handshake

ACK는 데이터가 잘 도착했는지 확인 응답을 하기 위한 플래그이다.

ACK가 ON으로 설정된 패킷이 응답으로 돌아오지 않으면 제대로 전달되지 않은 것이라고 판단한다.

 

 

반응형

'공부 > CS' 카테고리의 다른 글

비트와 바이트 (bit & Byte)  (0) 2021.06.03
P2P 네트워크  (0) 2020.11.21
HTTP 요청URL, 상태코드  (0) 2019.07.30
TCP / IP 4 계층  (0) 2019.07.29