본문 바로가기
네트워크

Transport Layer

by Lauren X Ming 2020. 2. 24.

Session Layer에서 전달 받은 데이터를 Segment 구성하여 네트웍을 통해 전달될 있도록 하는 역할

1. acknowledgement를 통해 수신 확인

2. 오지 않거나 오류 발생시 retransmission

 

flow control : 수신측 buffer   있을 경우, 송신측에 대기하라는 신호를 보내 Segment 유실되는 것을 막음.

windowing : Segment 하나씩을 받을 때마다 acknowledgement 매번 보낸다는 것은 비효율적이므로 2개 이상 Segment 받고 난후 acknowledgement 신호를 보내는 것

 

예시 프로토콜 : TCP, UDP

TCP

tcp 주요 기능

1. 데이터전송

2. Multiplesing

3. Error recovery (reliability)

4. Flow control windowing 사용

5. Connection 설정과 종료

1. 데이터 전송

- transport layer에서는 port number로 구분하여 전송한다. 

port number란?

IP는 목적지의 인터넷 주소를 이용해서 데이터그램이 정확한 호스트에 도착하도록 해준다
그러나 하나의 호스트에 다중의 사용자, 프로세스가 작업을 하고 있다면 내부에서는 어떻게 구분할까?
이 때 사용되는 것이 port이다. 

2. Error Recovery

 

신뢰성 있는 데이터 전송을 하기위해 data byte들은 TCP header안에 있는 sequence acknowledgment field 사용함.

- 한쪽 방향에선 sequence number 사용하고, 반대 방향에서는 acknowledgment number 사용(아래 그림 참조)

forward acknowledgment : 아래 그림에서 다음에는 SEQ=4000 전송하라는 의미를 갖고 있는 것

3. Flow contorl

Sliding Window : TCP 네트워크 상에서 데이터의 처리량을 극대화하기 위해서 ACK 도착하기 이전에도 수신측이 정해준 양만큼의 패킷을 연속해서 송신할 있도록 허용하는 방식

- sequence field + acknowledgment field + window field

4. 연결의 설정과 종료

TCP connection-oriented 프로토콜

데이터를 전송하기 위해서는 반드시 연결설정이 먼저 이루어져야 하고, 그런 다음 데이터 전송이 완료되면 반드시 연결 종료가 이루어짐

1. connection establishment : sequence field acknowledgment field초기화시키고, 사용되는 port number동의하는 과정

2. three-way handshaking : 연결 설정

Step 1 : Web client 웹서버에 연결을 시작하는 한다는 의도를 나타내는SYN 시작 sequence number 200, port number 보냄으로써 웹서버에 연결을 요구한다.

Step 2 : Web server 연결 요구에 대한 확인응답(ACK) client에게 보낸다.

Step 3 : Web client 다시 이것에 대한 확인응답을 server에게 보낸다.

3. 연결 종료 (4단계)

Step 1 : 연결을 종료하려는 송신측에서는 FIN=1(flag) 패킷을 수신측에 보낸다

Step 2 : FIN=1 패킷을 받은 수신측은 이에 대한 ACK 즉시 보내고 연결종료를 하기전에 TCP application에게 통보한다. ( “ OK ” )

Step 3 : 작업이 완료되면, 수신측은 FIN=1, ACK=1 패킷을 수신측에서 보낸 FIN 메시지에 대해 추가 ACK 보낸다. ( “I will Finish, too ” )

Step 4 : 송신측은 이에 대한 ACK 수신측에 보낸다. ( “ OK ” )

UDP

TCP : Connection-Oriented vs UDP : Connectionless

UDP sequence number?

- UDP는 패킷을 정렬하는 방법을 제공하지 않기 때문에 패킷은 destination station 의해 적절한 순서대로 놓이게 된다.

UDP : error recovery 수행하지 않음( lost data 무시 )