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

+ Recent posts