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 무시 )
'네트워크' 카테고리의 다른 글
Connectionless VS Connection Oriented (0) | 2020.02.24 |
---|---|
layer 3 ~ 1) Network, Data Link, Physical Layer (0) | 2020.02.24 |
layer 7 ~ 5(Application, Presentation, Session ) (0) | 2020.02.24 |
OSI 7 layer TCP/IP layer (0) | 2020.02.24 |
네트워크]라우팅 4 - Distance vector vs Link state (0) | 2020.01.11 |