TCP
- Transmission Control Protocol 의 약자
- 단말간에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜
- 제어기능을 통해 데이터를 안정적으로, 순서대로 전송 (신뢰성 보장)
- 전이중, 점대점 방식을 사용 (전이중: 양방향으로 동시에 전송) (점대점: 2개의 종단점을 가지고 있음)
- 여러 가지 제어기능들을 수행하기 때문에 UDP에 비해 속도가 느림
TCP 헤더
각 필드의 비트를 0 또는 1로 변경하여 전송하고자 하는 세그먼트의 정보를 나타냄
- Source Port & Destination Port : 세그먼트의 출발지와 목적지를 나타내는 포트번호를 담는 필드
- Sequence Number : 전송하는 세그먼트의 순서를 의미, 시퀀스 번호를 이용하여 수신자는 데이터를 재배열 가능, 랜덤한 순서번호를 임의로 부여해서 순차적으로 진행되게 구성 (IV)
- Acknowledgment Number : 데이터를 받은 수신자가 예상하는 다음 시퀀스 번호
- Header Lenth : TCP 헤더의 크기 값, 데이터의 시작 위치를 나타냄
- Reserved : 미래를 위해 예약된 필드로, 모두 0으로 채워져야 함
- Flags
- URG : 긴급하게 데이터를 보낼 때 사용, Urgent pointer와 같이 동작됨
- ACK : Acknowlegement 의 줄임말, 확인 응답을 하고자 할 때 사용
- PSH : 상위 계층으로 데이터를 한번에 전송하고자 할 때 사용
- RST : 강제적으로 종료, 공격자나 해커가 많이 사용하는 플래그 비트
- SYN : Synchronize의 줄임말, 통신에 대한 동기화, 통신연결을 요청할 때 사용
- FIN : 정상적인 종료
- Window Size : 수신 프로세스가 수신할 수 있는 바이트 수
- Check sum : 오류 검출을 위해 사용되는 필드, TCP 세그먼트의 내용이 유효한지 검증하고 손상 여부를 검사
- Urgent Pointer : URG Flag가 설정된 경우만 사용, 긴급한 데이터가 시작되는 위치를 가르키는 필드
- Options : TCP의 기능을 확장할 때 사용하는 필드, 가변적인 크기를 가짐
TCP의 재전송 기능 (재전송 큐, 재전송 타이머)
- 세그먼트를 매번 송신 마다, 그에따른 재전송 타이머의 가동과 동시에 재전송 큐에 송신한 세그먼트의 복사본을 보관
- 타이머가 만료되기 전까지 ACK가 오지 않는다면 큐에 보관된 세그먼트의 복사본을 자동 재전송 (타임 아웃)
UDP
- User Dategram Protocol 의 약자
- 비연결형 서비스를 제공하는 프로토콜
- 연결을 설정하고 해제하는 과정이 존재 X
- 제어 기능을 처리하지 않기에 TCP보다 속도가 빠름
- 네트워크 부하가 적음 BUT 신뢰성 보장 X
UDP 헤더
각 필드의 비트를 0 또는 1로 변경하여 전송하고자 하는 세그먼트의 정보를 나타냄
- Source Port & Destination Port : 세그먼트의 출발지와 목적지를 나타내는 포트번호를 담는 필드
- Lenth : 헤더와 데이터를 합한 데이터그램의 길이
- Checksum : 오류 검출 (선택사항)
'리팩토링' 카테고리의 다른 글
계층 별 프로토콜 (보완) (0) | 2023.01.31 |
---|---|
계층 별 프로토콜 (0) | 2023.01.16 |
계층 별 장비 (2) | 2023.01.10 |
TCP의 연결방식과 종료방식 (0) | 2022.12.26 |
OSI 7 Layer (0) | 2022.12.17 |