Network

22.08.24 데이터 전송 원리

슈팅스타제제 2022. 8. 24. 23:43

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