인터넷 통신은 어떻게 이뤄지는가?
노드
들을 거쳐 상대 클라이언트에 도달한다.IP(인터넷 프로토콜)
에 대해 알고 있어야 한다.패킷은 전송하고자 하는 데이터의 한 블록(payload)과 주소지 정보(발신지 주소, 목적지 주소), 관리 정보(Header, IPv6와 같이 망이 패킷을 목적지까지 전달하는데 필요한)로 구성된다.
설명 | |
---|---|
애플리케이션 계층 - HTTP, FTP | 무엇인가 비즈니스 로직 혹은 특정 제품을 만들어내는지에 따라 탄생하는 데이터 전송에 대한 약속(규칙) 계층 |
전송 계층 - TCP, UDP | 물리적으로 연결하고, 경로를 지정했으면 이제 데이터를 전송해야 하는데, 데이터를 전송하는 방법을 정의하는 계층 |
인터넷 계층 - IP | 방대한 인터넷 계층에서 어디로 보낼지 경로를 선택하는 것이 IP 계층이다 이 자체로는 비연결 지향적이며 신뢰성이 없고 데이터를 전송한 이후 발생하는 문제에 대해서는 신경 쓰지 않는다 |
네트워크 인터페이스 계층 | 물리적인 영역을 표준화하는 계층으로 실제로 랜선을 꼽는 랜카드나 랜카드 드라이버 등이 이에 속한다 |
비신뢰성
과 비연결성
을 TCP 정보를 추가함으로써 한계를 극복했다.TCP 3 way handshake
(가상 연결)1. SYN(Synchronizer) 접속 요청 메시지 전송
2. SYN + ACK 요청 수락
3. ACK (with 데이터 전송 가능)
💡 이 상태에서는 개념적으로 연결된 것으로 그 사이의 수많은 노드들과의 연결이 되었는지는 알 수 없다.
패킷의 순서가 잘못 도착했을 경우 잘못 전송된 패킷을 기준으로 다시 보내라고 요청을 한다.
패킷 데이터의 순서 보장
TCP 정보에 PORT부터 순서와 같은 정보들이 포함되어 있기에 가능하다.
기능이 거의 없다.
연결 지향 - TCP 3 way handshake
❌, 데이터 전달 보증
❌, 순서 보장
❌해당 IP에 도착하여 서버를 만났을 때, 돌아가고 있는 애플리케이션이 2개 이상이라면
어떤 애플리케이션에 데이터를 전송해야 할까 ❓
IP를 아파트
, PORT를 호수
로 비유하면 이해가 쉽다.
위에서 봤던 패킷 정보인데,
TCP
(혹은 UDP) 라면 출발지와 목적지의 IP뿐 아니라
PORT 정보
도 담겨있는 걸 볼 수 있다.
0
~ 65535
할당 가능0
~ 1023
: 잘 알려진 포트이기에 사용하지 않는 것을 추천20
, 21
23
80
443
인터넷 통신을 위해 IP(with PORT)가 필요하다고 했는데, 이 IP에는 몇 가지 단점이 있다.
가독성이 떨어지고 외우기 힘들다.
: 200.200.200.1, 혹은 174.254.162.74 이런 식의 아이피는 가독성이 떨어진다.
IP는 변경될 수 있다.
: 200.200.200.1로 주소를 기억하고 있는데, 변경돼서 200.200.200.3이 된다면 대응하는 게 까다롭다.