TCP(Transmission Control Protocol)
-TCP란?
TCP란 연결형 서비스를 지원하는 전송계층 프로토콜로 IP 프로토콜 위에 위치해있다.
전이중(Full Duplex)방식의 양방향 가상 회선을 제공하고, 신뢰성 있는 데이터 전송을 보장한다.
-TCP의 특징
속도가 느리다.(UDP에 비해)
연결형 서비스를 지원한다. ( 데이터를 보내기 위해 연결 설정, 데이터 전송, 연결 해제의 3단계를 진행한다. )
신뢰성이 좋다.
Client 와 Server 통신중 원격에서 중간에 끼어들기가 어렵다( MITM공격이 힘들다 )
-1. Sequence Number가 랜덤이기 때문에 (엄밀히 따지면 랜덤은 아님) 알아내기 힘들다.
-2. 어찌어찌 알아내서 끼어들수 있다고해도, Destionation IP때문에 반응을 받을 수 없다.
패킷을 Segment라는 단위로 나누어서 통신한다.
TCP의 신뢰성을 유지시켜주는 역할 - Sequence number
Acknowledgement Number
windows size(Flow control)
Connection-Oriented - Data를 교환하기 위해 두 Node는 Connection을 맺음 ( 3 way - handshaking)
-TCP헤더의 구조
Source Port (2Byte) : 송신 측 포트번호, Dynamic하게 할당됨(1,024 이상)
Destination Port (2Byte) : 수신 측 포트번호, 고정포트
Sequence number (4Byte) : SYN flag가 1인 경우 - 초기 순서 번호를 나타냄 ( 3way Handshaking 시)
SYN flag가 0인 경우 - 세그먼트의 순서 번호를 나타냄
Acknowledgement Number (4Byte) : Seq number에 대한 응답이며 Payload가 없을 때에는 Seq Number + 1
Payload가 있을 때에는 Seq Number + Payload의 길이
Offset : TCP 헤더의 길이
Flags (1Byte) : 이 패킷의 용도를 나타냄
- URG : 긴급 (긴급히 전송할 데이터가 있다.라고 우선순위를 설정)
- ACK : 응답 (데이터를 잘 받았다. 라고 응답)
- PSH : 푸쉬
- RST : 리셋 (오류 발생시 데이터를 수신하지 않음)
- FIN : 종료 (데이터 송수신 완료시 가상 회선 연결을 끊음)
Window (2Byte) : 흐름제어를 위해 사용하는 필드
-TCP 흐름제어를 위해 송신자에게 수신자 자신의 버퍼 여유용량 크기를 지속적으로 통보함
-수신측에 의해 능동적으로 흐름제어를 수행하게 됨.
Checksum (2Byte) : 검사합 ( 오류체크)
Urgent pointer (2Byte) : Flags에 URG비트가 1일경우, TCP 세그먼트에 포함된 긴급 데이터의 마지막 바이트에 대한 일련번호를 나타냄
-현재 일련번호로 부터 긴급 데이터까지의 바이트 offset
-해당 세그먼트의 일련번호에 Urgent point 값을 더해 긴급 데이터의 끝을 알 수 있음
-Flags에 URG비트가 0일경우 이 필드는 무시된다.
Options : 최대 40바이트까지 옵션 데이터 포함 가능
-주어진 윈도우 크기보다 더 크게 사용하거나, 타임스탬프 옵션 정의등의 설정을 한다.
UDP (User Datagram Protocol)
-UDP란?
UDP란 비연결형 서비스를 지원하는 전송계층 프로토콜이다.
신뢰성이 낮은 프로토콜로써 완전성을 보증하지는 않으나, 유연하고 효율적이다.
따라서 약간의 데이터의 손실이 있어도 상관없는 데이터를 전송할 때 유용하다.
-크기가 큰 동영상(데이터에 약간의 손상이 가더라도 실제로 동영상을 볼때는 한 프레임의 조그만 손상이다.)
예전에는 케이블을 통한 통신도중 데이터의 손실 확률이 높았지만 요즘은 광케이블을 사용하는 등 데이터의 손실이 많이 않기때문에
속도가 빠르다는 면에서 많이 쓰인다.
-UDP의 특징
Connectionless and unacknowledged (가상회선을 확립하지 않으며 데이터수신에대한 응답을 하지 않는다.)
Not-Guaranteed ( 완벽한 데이터 전송을 보장하지 않는다.)
Header 길이가 작다.
오류제어 및 흐름제어가 없다.
데이터 전송 속도가 빠르다.
-UDP헤더의 구조
'Network.' 카테고리의 다른 글
IP 할당 방식(Static, DHCP)과 DHCP 프로토콜 (1) | 2016.08.26 |
---|