( 인터넷 통신, ip, tcp udp , port , dns)
인터넷 프로토콜(IP)은 데이터 패킷이 네트워크를 통해 이동하고 올바른 대상에 도착할 수 있도록 데이터 패킷
을 라우팅하고 주소를 지정하기 위한 프로토콜
또는 규칙의 집합입니다.
인터넷 프로토콜
이란?
데이터 패킷이 네트워크를 통해서 이동하고 올바른 대상에 도착할 수 있도록 데이터 패킷을 라우팅하고 주소를 지정하기 위한 규칙
인터넷 프로토콜은 지정한 ip 주소에 패킷이라는 통신 단위로 데이터를 전달한다
ex)
ip주소가 100.100.100.1 인 클라이언트는 ip주소가 200.200.200.2인 서버에게 데이터를 전달하려 한다. 이때 패킷이라는 통신 단위로 데이터를 전달하는데 아래와 같이 전송 데이터에다가 출발지 ip, 목적지 ip와 같은 정보들을 감싸서 전달한다
이렇게 감싸진 패킷은 노드에게 전달되고 노드들끼리 패킷을 전달하면서 최종적으로 서버에게 전달된다 ( 이때 노드는 네트워크에 연결되어 있는 1개의 기계를 의미한다)
서버가 클라이언트에게 보내는 데이터 패킷도 마찬가지이다.
❗ 하지만 이런 ip 프로토콜의 한계도 존재한다
⏩ 그래서 이런 ip 주소의 문제를 해결하기 위해 tcp , udp 가 등장하였다 !
프로토콜 계층
실제 데이터가 전송될때 과정을 살펴보자
프로그램( 애플리케이션) 에서 hello, world 라는 메시지를 생성한다 이 메시지를 socket 라이브러리를 통해서 전달한다 ( 이때 socket 라이브러리는 데이터를 내보내거나 데이터를 받기 위한 창구라고 생각하자) 이 메세지에다가 tcp 정보를 씌우고 tcp 정보에다가 ip 정보를 씌워서 패킷을 생성하고 물리적 전송을 한다 ( 이 부분에 대해서는 네트워크 공부가 더 필요)
(위 그림은 tcp , ip 패킷 정보이다)
TCP 정의 ( Transmission Control Protocol)
TCP
는 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜으로 ip 프로토콜의 신뢰성을 보안하기 위해 만들어졌다
TCP 역할
연결지향 3way handshake
데이터 전달보증
순서보장
이런 검증정보들이 tcp에 존재하기에 가능하다
UDP
정의
ip 주소의 단점
⏩ 그래서 dns 서버에 도메인을 사서 도메인 명을 등록한다.
그래서 클라이언트에서 google.com이라는 도메인명을 DNS 서버에 전달하면 이에 해당하는 ip주소를 응답한다 이 ip 주소를 가지고 서버에 접속한다
위 내용은 김영한 - 모든 개발자를 위한 HTTP 웹 기본
강의를 바탕으로 작성되었습니다.
좋은 글 잘 보고 갑니다!^^