1. TCP/IP 정의
콘센트를 사용할 때 220V 110V에 따라정해진 모양과 크기가 있지 않은가 그것과 같은 맥락이다.
그러면 그 규약에 맞춘 실제 통신은 어떻게 이루어지는지는 아래서 설명한다.
2. TCP/IP 통신 과정
TCP/IP 통신에 대해 공부하며 가장 비유하기 좋은 모델은 택배가 이동하는 과정이 아닐까 싶어 그것에 빗대어 표현하면 이렇다.
* TCP 통신을 한다는 전제
비유 모델(컴퓨터 책상 배송) | 인터넷(데이터 전송) | |||
상황 | 컴퓨터 책상이 매우 커서 한번에 보낼 수 없음. | 데이터가 커서 한번에 보낼 수 없음. | ||
1번 -> 2번 행동 | 책상 부품을 분해 한 뒤 각각 택배 상자에 담고 송장을 작성해 박스에 붙인다. | 데이터를 쪼갠 뒤 패킷화를 한다. | ||
2번 | 택배를 등기로 보낼 것임을 명시해준다. | TCP 헤더(송장)에 송신자,수신자 port 번호와 데이터를 담을 수 있는 크기 정보등을 추가한다. | ||
3번 | 송장에 받는이의 아파트 주소를 작성한다. | TCP 헤더에 송,수신자 IP 번호를 추가한다. | ||
4번 | 송장에 받는이의 동/호수 까지 기입한다. | TCP 헤더에 송,수신자 MAC 주소를 추가한다. | ||
5번 | 택배 기사님이 트럭에 박스를 넣어 배송한다. | 패킷을 전기신호로 변환한 뒤 인터넷을 통해 이동 |
* 실제 배송 중에는 하나의 트럭이 처음부터 끝까지 수행하지 않는다. 각 지역 hub를 거친 뒤 우리에게 온다.
데이터도 마찬가지로 각각의 router를 거쳐 수신자에게 도달하게 된다.
3. TCP 연결
TCP 통신에 대해 검색을 하다 보면 '연결 지향' , 논리적 연결 이라는 말을 한 번쯤은 접했을 것이다. 그러면 여기서 논리적 연결을 무엇을 말할까?
3-1. TCP 논리적 연결이란
TCP 통신의 특징은 두 서버가 연결을 하고, 그 연결을 통해 누락된 데이터가 없는지 잘 주고받았는지를 확인하여 신뢰성이 보장된다고 한다.
그렇다면 여기서 말하는 연결이 무엇일까? 실제 두 서버가 케이블로 연결되어 있다는 아니다. 두 서버가 인터넷을 통해 특정 패킷을 송/수신 완료 했다면 두 서버는 논리적으로 연결되어 있다.라고 말하는 것이다.
여기서 말하는 특정 패킷을 송/수신하는 것을 고급지게 3-WAY-Handshake라고 말하며 다시 말해
3-WAY-Handshake 가 완료 되면 논리적 연결이 되었다.라고 하는 것이다.
3-2. 3-WAY-Handshake
위에서 3-WAY-Handshake란 논리적 연결을 위한 과정이라고 말했다. 그럼 이때 주고받는 패킷은 무엇일까.
순전히 연결을 위한 패킷이므로 그 안에는 실제 데이터를 포함하지 않는다.
한마디로 위의 그림에서 Data 부분은 비어 있고 TCP 헤더에 있는 Sequence Number 값을 사용하여 연결을 확인한다.
- 위의 과정을 통해 서로 준 값들에 대한 올바른 응답을 한다면(논리적 연결) 그 이후 패킷에 실제 Data를 넣어 송/수신하게 된다.
- 이렇게 패킷들을 주고받은 인터넷상에서의 경로(라우터와 라우터의 연결 통로)가 수립된다면 해당 연결이 끊이지기 전까지 주고받는 모든 패킷들은 위의 경로와 동일한 경로로 주고받게 된다.
(3-WAY-Handshake를 할 때 인터넷상에서 빨간색 경로로 갔다면 이후 주고받는 패킷도 해당 경로로만 감) - 실제 TCP 헤더 안에는 패킷의 크기, 장애 대응 정책 등에 대한 더 많은 정보들이 들어가 있지만 더 깊이 가지 않는다.
참고 자료
- 널널한 개발자TV
- IT 위키
'Network' 카테고리의 다른 글
포트 포워딩 개념 및 IP 주소 종류 (0) | 2023.08.21 |
---|---|
TCP/IP 4계층 - 인터넷 계층 정리 (0) | 2023.08.17 |
TCP/IP 4계층 - 네트워크 접근 계층 정리 (0) | 2023.08.15 |