인터넷 통신의 핵심, 프로토콜

taehyung·2023년 8월 8일

Internet

목록 보기
2/6

이전 포스팅에서 다뤘던 인터넷 통신의 핵심을 파헤져보고자 작성해본 내용 입니다.

인터넷은 어떻게 데이터를 전송해줄까?

IP ( internet protocol ) 이름에서 알 수 있듯 인터넷 통신규약입니다.

IP 주소 : 각 클라이언트들이 고유하게 가지고있는 주소

패킷 : 패키지(수하물) 덩어리(버킷) 합성어

인터넷을 통한 데이터 통신은 데이터를 패킷이라는 단위로 잘게 쪼개어 주고 받습니다.

IP 패킷

IP패킷은 데이터를 보내는 클라이언트의 IP주소와 데이터를 받을 클라이언트의 정보로 데이터를 포장합니다. ( 택배 보내는곳과 받을곳의 주소 )클라이언트는 패킷으로 포장한 데이터를 인터넷 망에 흘려보냅니다.서버는 데이터패킷이 잘 도착했다면, 데이터를 보낸 클라이언트에게 잘 도착했다고 패킷으로 된 데이터로 응답해줍니다.

패킷은 언제나 최적의 노드를 이용하기 때문에 언제든 다른 경로를 이용할 수 있습니다.


IP프로토콜의 한계

비연결성비신뢰성전달의 오류애플리케이션의 구분
패킷을 받을 대상이 없거나, 받을 수 있는 상태가 아니어도 일단 전송을 합니다.패킷 전송중 중간 노드의 서버가 생각치 못한 오류를 발생하여 패킷이 소실될 수 있습니다.클라이언트가 전송한 패킷의 순서가 뒤죽박죽으로 온다면 잘못된 데이터를 전달 할 수 있습니다.
패킷은 언제나 최적의 노드를 이용하기 때문에 언제든 다른 경로를 이용할 수 있습니다.
게임, 음악감상 등 여러 작업을 할 경우 다양한 서버에서 클라이언트에게 데이터패킷을 보내옵니다. IP프로토콜은 서버에서 보내온 데이터 패킷이 어떤 어플리케이션의 데이터인지 구분할 수 있는 기능이 없습니다. 단순히 IP주소만을 가지고 있을 뿐이기 때문입니다.

위와 같은 문제를 해결하기위해 TCP( Transmission Control Protocol ) 이 탄생하게 되었습니다.


애플리케이션 계층 - 운영체제에서 구동되는 어플리케이션
전송 계층 - TCP, UDP 프로토콜을 이용하여 IP프로토콜의 단점을 보완해주는 계층
인터넷 계층 - IP패킷을 생성하여 데이터를 최종 포장하는 계층
네트워크 인터페이스 계층 - 일련의 과정을 거친 패킷들을 노드에 흘려보내는 계층
애플리케이션 - 데이터 생성
소켓라이브러리 - TCP 계층에 데이터 전달
TCP - 데이터에 TCP 정보 기입 및 포장 후 IP계층에 전달
IP - TCP로 감싸진 데이터에 IP정보 기입 후 네트워크 인터페이스에 전달
네트워크 인터페이스 - 이더넷 프레임을 씌우고 랜카드를 통해 노드로 전달

이더넷 프레임의 내용은 너무 방대하고 프론트엔드 개발에 미치는 영향이 거의 없기에 언급하지 않겠습니다.


IP프로토콜의 단점을 보완해주는 TCP(Transmission Control Protocol)(전송제어 프로토콜)


TCP 정보 : 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보

IP프로토콜의 단점을 해결해줄 TCP의 특징은 아래와 같습니다.

연결지향 - TCP 3 way handshake ( 가상연결 )
데이터를 받을 서버의 상태를 먼저 확인한다.
SYN + ACK 동시에 가능하다.
마지막 ACK 와 함께 데이터 전달.
데이터 전달보증
데이터를 전달받은 서버가 클라이언트에게 잘 받았다는 확인 메시지를 전달한다. ( 전달 받지 못한경우 문제가 있음을 알 수 있다.)
순서 보장
패킷에 저장된 순서 정보를 확인하고, 잘못된 순서가 있을경우 다시 요청한다. 데이터를 받는 서버를 최적화하면 내부적으로 정리가 가능하다고 한다. 하지만 기본은 다시 요청하는 것.
애플리케이션구분
지정된 포트에 지정된 어플리케이션과 데이터 통신을하는 전용 공간을 부여함으로 각 어플리케이션 구분 가능
해결 가능한 IP의 단점
비연결성
해결 가능한 IP의 단점
비신뢰성
해결 가능한 IP의 단점
전달의오류
해결 가능한 IP의 단점
애플리케이션구분

IP프로토콜과 유사한 UDP(User Datagram Protocol)


TCP의 단점 : TCP정보 추가, 서버검증의 과정을 거치는 가운데 용량도 커지고 시간도 길어집니다. ( 이미 구축된 프로토콜이기때문에 최적화를 더 할 수 없다. 현재 90프로이상 사용중

UDP의 장점 : 반면 UDP는 본인이 최적화를 더 할 수 있. (최근 각광받고있음)


이하 TCP/IP 를 묶어서 칭하겠습니다.


profile
Front End

0개의 댓글