1. Transport Layer(전송 계층)
: End Point 간 신뢰성있는 Data 전송을 담당하는 계층
신뢰성 : Data의 순차적, 안정적인 전달 보장
전송 : 목적지 Port 번호에 해당하는 Process에 Data 전달
1.2. Transport Layer의 중요성
만약, 전송 계층이 없다면 ?
- Data의 순차 전송이 원활히 이루어지지 않음
e.g., 송신자가 1 2 3의 순서로 Data를 전송했을 때 수신자는 Data 수신 시 2 3 1 등의 순서로 전송받을 수 있다. - Flow 문제(흐름 문제) 발생
Flow 문제의 원인 : 송·수신자 간의 Data 처리 속도의 차이
e.g., 수신자가 처리할 수 있는 Data의 양을 초과하는 경우 그 이후에 송신되는 Data의 경우 누락될 수 있다. - Congestion 문제(혼잡 문제) 발생
Congestion 문제의 원인 : Network(e.g. Router)의 Data 처리 속도
e.g., 송신자가 계속 Data를 저송하더라도 Network가 혼잡해 수신자에게 제대로 전달되지 않을 수 있다.
∴ Data의 손실이 발생할 수 있다.
2. TCP(Transmission Control Protocol)
: 신뢰성있는 Data 통신을 가능하게 해주는 Protocol
- Data 전송 전 Connection 연결이 필요하다. (3-Way Handshake : 양방향 통신)
- Data의 순차 전송을 보장한다.
- Flow Control (흐름 제어)
- Congestion Control (혼잡 제어)
- Error Detection (오류 감지)
☞ Checksum 이용
2.1. Segment
: TCP의 PDU(Protocol Data Unit, 프로토콜 데이터 단위)
Application 계층에서 Data를 전송하면 TCP Protocol 안에서 내부적으로 Data를 잘라 TCP Header와 Data를 결합한다.
2.2. TCP Header의 구조
- Source Port : 송신자 Port 번호
- Destination Port : 수신자 Port 번호
- Sequence Number, Acknowledgment Number : 순차 전송 담당
- Flag Field : TCP 연결 제어 및 Data 관리
- Checksum : Error 검출
2.3. 3-Way Handshake (Connection 연결)
① Client가 SYN 비트를 1로 설정해 Server에 Packet 송신
② Server가 SYN, ACK 비트를 1로 설정해 Client에 Packet 송신
☞ ACK 비트로 Data를 받았음을 알림
③ Client가 ACK 비트를 1로 설정해 Server에 Packet 송신
④ 열결 완료 후 Data 송수신
2.4. Data 전송 방식
① Client가 Server에 Packet 송신
② Server가 ACK 비트를 1로 설정해 Client에게 Packet 송신
③ Client가 ACK를 받지 못하면 Packet 재전송
☞ 신뢰성 있는 통신 보장
2.5. 4-Way Handshake (Connection Close)
① Data를 전부 전송한 Client가 FIN 비트를 1로 설정해 Server에 Packet 송신
② Server가 ACK 비트를 1로 설정해 Client에 Packet 송신
③ Server에서 남은 패킷 송신 (Client는 일정 시간 대기)
④ Server가 FIN 비트를 1로 설정해 Client에 Packet 송신
⑤ Client가 ACK 비트를 1로 설정해 Server에 Packet 송신
2.6. 문제점
- 전송의 신뢰성은 보장하지만 매번 Connection을 연결해 시간 손실이 발생한다. (3-Way Handshake)
- Packet을 조금만 손실해도 재전송한다.
3. UDP(User Datagram Protocol)
: TCP에 비해 신뢰성은 떨어지지만 전송 속도가 일반적으로 빠른 Protocol
- Connectionless (3-Way HandShake 과정이 없다 : 단방향 통신)
- 순차 전송, 흐름 제어, 혼잡 제어 기능이 없다.
- Error Detection
☞ Checksum 이용 - 비교적 Data의 신뢰성이 중요하지 않을 때 사용된다.
e.g., 영상 스트리밍
3.1. User Datagram
: UDP의 PDU(Protocol Data Unit, 프로토콜 데이터 단위)
- Application 계층에서 Data가 전송되면 Data에 UDP Header를 추가해 만들어진다.
☞ Segment는 Data를 쪼갰으나 Datagram은 Data를 쪼개지 않는다.
3.2. UDP Header
- Source Port : 송신자 Port 번호
- Destination Port : 수신자 Port 번호
- Checksum : Error 검출
3.3. UDP의 Data 전송 방식
① Client가 Packet 송신
[참고]
https://diy-multitab.tistory.com/27
컴퓨터 네트워크 - Transport Layer
Transport layer application layer 바로 밑에 있는 계층으로 transport layer 관점에서는 logical End-End transport 단위로 그중간에 있는 과정은 관심이 없다. app message를 Header과 Data로 이루어진 Segment..
diy-multitab.tistory.com
'CS기술 지식 > 네트워크' 카테고리의 다른 글
[네트워크] Physical Layer(물리 계층)란? (0) | 2022.03.23 |
---|---|
[네트워크] OSI 7계층이란? (0) | 2022.03.20 |
[네트워크] RESTful이란? (0) | 2022.03.19 |
[네트워크] GET, POST 방식 (0) | 2022.03.06 |