인터넷프로토콜 4계층 역할
인터넷 프로토콜에는 4개 계층이 존재한다.
- 애플리케이션 계층 HTTP, FTP
- 전송 계층 - TCP , UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층 - 램 카드, 램 드라이브
이전 인터넷통신 IP프로토콜 클라이언트에서 서버로 서로 IP로 데이터를 주고받는
인터넷 계층 IP프로토콜에서 발생했던 한계성, 수 많은 문제들을 보완해주는 역할을 TCP프로토콜이 해결해준다.
그림으로 설명하자면, 서버에 Hello 데이터를 전송하고싶다.
- 애플리케이션 채팅프로그램 (SOCKET 라이브러리)를 통해서 OS계층에 데이터를 전달한다.
- OS계층에서 TCP프로토콜이 데이터에 TCP정보를 씌우고, IP프로토콜에 전달한다.
- IP프로토콜에서 IP와 관련된 정보를 입력해 IP패킷을 생성한다.이 생성된 패킷에는 IP,TCP, Hello데이터들이 있다.
- 네트워크 인터페이스 LAN카드를 통해서 서버로 전송될때,Ethernet frame이 포함되어서 인터넷을 통해서 서버로 전송된다.
이더넷프레임은 램카드에 등록된 맥 주소로 물리적인 정보들이 포함되어있다.이더넷프레임까지 공부하려면 네트워크 밑바닥까지 들어가야하기때문에, 사실상 웹 HTTP공부를 하는데는 IP프로토콜까지만 깊이있게 공부하면 된다.
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
- 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증 • 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
TCP 3 way handshake(가상연결)
IP프로토콜에서 클라이언트가 서버에 데이터를 전송했을 경우 서버가 오프인경우 비 신뢰성이 존재했는데
TCP에서는 클라이언트랑 서버와 SYN , SYN + ACK , ACK 요청을 주고받으며, 서로 연결되어있는지 확인하고 데이터를 전송한다. 이를 3 way handshake이라고 정의한다.
하지만 지금은 최적화가 되어있기 때문에, 마지막 3번 ACK순서에서 데이터도 같이 보낸다.
데이터 전달보장
IP에 TCP세그먼트와 데이터를 전송하게되면, 서버에서 데이터를 잘 받았다고 응답해준다,
이로인해 서버에서 아무응답이 없으면, 문제를 바로 인지할 수 있다.
순서 보장
패킷데이터 단위가 클 경우, 1500Bype단위로 끊어서 전송하게되는데, 서버에 패킷이 순서대로 도착하지 않을 경우
잘못 도착한 데이터부터 다시 전송하라고, 클라이언트에 요청해서, 도착 순서가 보증이된다.
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같다. +PORT +체크섬 정도만 추가 , 애플리케이션에서 추가 작업 필요
PORT
사전적 의미 : 항구
한 클라이언트에서 동시에 여러개의 서버를 통신하며, 서버로 부터 패킷이 들어올 경우
게임에서 필요한 패킷인지, 웹 브라우저에서 필요한 패킷인지, IP프로토콜만으로 구분을 하는데 한계성이 있다.
그 IP패킷에 TCP프로토콜을 더해 TCP/IP 패킷을 묶어, 데이터를 주고 받는다.
IP는 목적지를 찾는거고, 서버안에 구동중인 애플리케이션을 구분하는게, 바로 PORT이다.
💡쉽게 비유하면 IP가 아파트, PORT는 동호수이다.
PORT 는
0 ~ 65535까지 할당가능하고
0~ 1023은 잘 알려진 포트, 사용하지 않는 것이 좋다
FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS 보안이 추가된 443이 쓰인다.
DNS
도메인 네임 시스템(Domain Name System)
IP는 변경될 수 있고, 기억하기 어렵다.
DNS를 이용해서 전화번호부 같은 서버를 제공해서, 도메인명을 등록하고 아이피주소를 변환한다.
쉽게 말해서
클라이언트에서 도메인서버에 google.com의 IP주소를 요청하고, DNS서버에서 아이피 주소를 응답받아 해당 아이피주소로 서버로 접속하게 된다.
출처 : 인프런 - 모든 개발자를 위한 HTTP 웹 기본지식 by 우아한형제 김영한이사님
'WEB HTTP > HTTP 기본' 카테고리의 다른 글
HTTP 메시지구조 (0) | 2023.03.17 |
---|---|
HTTP 연결성과 비연결성(connectionless) (0) | 2023.03.17 |
HTTP 기본 (0) | 2023.03.16 |
URI? URL? URN? [웹HTTP] (0) | 2023.03.07 |
인터넷 통신 IP(Internet Protocol) (0) | 2023.02.23 |