TCP(Transmission Control Protocol)

간단하게 말하면 데이터 전달 규칙!

ex) A라는 데이터를 보낸다면,
 A-1, A-2, ..., A-10 이런식으로 잘게 나누어 데이터를 전송한다.
잘게 나누어진 것들이 패킷!

데이터를 패킷으로 나누는 기준이 MTU(Maximum Trasmission Unit)
MTU란 패킷의 최대 크기를 나타내는 수치.

-. MTU값이 작으면 패킷수가 많아진다

                   => 패킷이 가지고 있는 공통 header들을 처리하는 양이 늘어나므로 overhead가 늘어나는 문제 발생.
-. MTU값이 크면 패킷수가 줄어들기 때문에 한번에 많은 데이터를 보낼수 있으므로 대량의 데이터를 처리할 때 이점이 있다. 

                   => 하지만 패킷이 훼손되어 오는 경우에는 다시 큰 패킷을 요청해야하는데, 패킷이 큰 만큼 오는데 오랜                         시간이 걸리게 된다.

패킷은 하나의 루트로만 전송되지 않는다. 여러 루트를 통해서 전송이 가능한데 여러 루트마다 도착시간이 달라서 순서가 보장되지 않는다.
데이터를 받는쪽은 A-2,A-10,…, A-1 데이터를 순서에 맞게 A-1,A-2,…,A-10으로 재조립 한다. 순서에맞게 재조립이 가능한 이유는, TCP 방식으로 데이터 전송시 Header가 붙게되는데 Header에 순서에 관한 정보(Sequence Number)가 있기 때문이다.

 

[참고] TCP 헤더


TCP헤더 구조를 보면
Source Port는 송신측의 port 번호를 나타낸다.
Destination Port는 수신측의 port번호를 나타낸다.
CheckSum은 패킷의 훼손여부를 체크하는 역할을 한다.
SYN은 통신을 하는 양측의 Sequence Number를 동기화 하기위해 사용된다.
ACK는 데이터를 잘 받았다는 응답을 전달하기 위해 사용되며 Sequence Number에 + 1을 붙이는 방법을 이용한다.

 

IP(Internet Protocol)

인터넷상에서 사용되는 주소

'자기계발 일지' 카테고리의 다른 글

HTTP/HTTPS 란?  (0) 2021.02.22

+ Recent posts