IP 패킷이란?
클라이언트에서 서버로 데이터를 전달할 때,
메세지(데이터)를 어디서 어디로 보낼지 알려주는 체계이다.
1. 출발지 IP => 2. 목적지 IP
3. 메세지
IP 프로토콜의 한계
그런데 여기서 IP 프로토콜의 한계가 드러난다.
1. 비신뢰성: 중간에 패킷이 소실될 수 있다.
2. 비연결성: 패킷을 받을 대상이 없거나 연결 불능 상태일 경우가 될 수 있다.
3. 순서 미보장: 패킷의 용량이 커지면 150MB 단위로 잘라서 전송하는데
이때 패킷의 순서가 보장되지 않는다.
TCP
이 문제들을 해결하기 위해서 TCP 세그먼트 구조를 사용한다.
TCP 에 포함되는 구성은
1. 출발지 IP, 2. 출발지 PORT => 3. 목적지 IP, 4. 목적지 PORT
5. 패킷 순서 6. 검증 7. 메세지(데이터)
여기서 PORT 란
내가 클라이언트의 같은 IP 를 사용하는데
각각 다른 서버로 데이터 요청을 보낼 수 있기 때문에
서버 측에서는 그것을 어떻게 구분하는지에 대한 해결 방법이 된다.
내가 한 컴퓨터에서 웹 브라우저로 검색도 하고
음악 스트리밍도 듣는데
이때 같은 컴퓨터가 쓰고 있는 인터넷 IP는 같을 수 있지만
웹 브라우저의 포트와 스트리밍의 포트는 다르기 때문에
구분할 수 있다.
TCP 3way handshake
그리고 패킷을 받을 노드가 온라인 상태인지 확인하기 위해
1. SYN (클라이언트 측에서 전송)
2. SYN + ACK (서버 측에서 전송)
3. ACK (클라이언트 측에서 전송)
3번 과정까지 완료되면 클라이언트와 서버는 서로의 통신에 문제가 없다고 간주하고
데이터 전송을 시작한다.
UDP
TCP 의 심플한 버전이다.
어느 데이터는 TCP 세그먼트 중 체크섬 검증이 필요없을 수도 있고
포트가 같기 때문에 출발지 포트가 필요없을 수도 있다.
IP 프로토콜과 거의 비슷하지만 커스터마이징할 수 있다는 커다란 장점이 있다.
DNS
IP는 언제든지 바뀔 수 있다.
로컬 노드가 언제나 모든 서버의 IP를 가지고 있을 수 없다.
그렇기 때문에 DNS 라는 도메인에 대한 IP 를 알려주는 서버가 따로 존재한다.
쉬운 요약
IP: 아파트 몇단지인지
PORT: 몇동 몇호인지
DNS: 전화번호부
'Network' 카테고리의 다른 글
22.08.17 [Server] 확인해보고 다시 말씀드리겠습니다. (0) | 2022.08.17 |
---|---|
22.08.16 [AWS] VPC (0) | 2022.08.16 |
22.08.14 NAT, NTP, IPv4, Subnet이란? (0) | 2022.08.14 |
22.08.12 Packet 패킷이란? (0) | 2022.08.12 |
22.08.08 IPS, WAF, FW이란? (0) | 2022.08.11 |