김영한님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식"을 통해 학습한 내용과 서적 및 인터넷을 통해 공부한 내용을 정리했습니다.
지정한 IP 주소(IP Adress)에 데이터를 전달하는 프로토콜로 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. IPv4와 IPv6 두 가지 체계가 있다. IP 패킷 정보에는 출발지 IP와 목적지 IP등의 정보와 전송 데이터의 정보를 가지고 있다.
IP 프로토콜의 한계로는 아래와 같은 내용들이 있다.
이미지 출처: https://hahahoho5915.tistory.com/15
4계층 응용 계층(Application Layer)
OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당한다. TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다. 프로세스간 통신을 위해 설계된 계층이다.
예) FTP, HTTP, SSH
3계층 전송 계층(Transport Layer)
OSI 7계층의 전송 계층에 해당한다. 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다. 즉, 송신자와 수신자를 연결하는 서비스에 대한 정보를 담고 있다.
예) TCP, UDP
2계층 인터넷 계층(Internet Layer)
OSI 7계층의 네트워크 계층에 해당한다. 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당한다. 즉 패킷을 목적지로 전송하기 위한 정보를 가지고 있다.
예) IP, ARP, RARP
1계층 네트워크 액세스 계층(Network Access Layer or Network Interface Layer)
OSI 7계층의 물리계층과 데이터 링크 계층에 해당한다. LAN드라이버 LAN 장비 등 물리적 전송을 위한 계층이다.
이미지 출처: 모든 개발자를 위한 HTTP 웹 기본 지식, 인프런, 김영한님
인터넷 프로토콜 모음 중에서 IP 프로토콜과 함께 가장 핵심적인 프로토콜로, 통신 경로의 양 끝단의 위치한 시스템들 사이의 신뢰성 있는 연결형 서비스를 제공한다.
IP 프로토콜의 문제인 패킷의 소실과 순서를 보장해주지 않는 다는 점을 TCP를 통해 해결할 수 있다.
이미지 출처: 모든 개발자를 위한 HTTP 웹 기본 지식, 인프런, 김영한님
TCP 세그먼트는 출발지와 목적치 포트, 전송제어, 순서, 검증 정보에 대한 정보를 가지고있기 때문에 IP 프로토콜이 가지고 있던 문제들을 해결할 수 있다.
TCP 특징
전송 제어 프로토콜(Transmission Control Protocol)
인터넷 프로토콜 모음 중에서 핵심이 되는 프로토콜 중 하나이다. 사전에 연결을 설정하지 않고 다른 호스트로 데이터그램을 전송하기 위한 프로토콜이다. 하부에 IP 프로토콜을 이용한다.
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
같은 IP 안에서 프로세스를 구분하는 역할, IP를 아파트라고 하면 PORT는 몇동몇호인지를 나타낸다고 비유하면 이해하기 쉽다.
포트는 보통 0~65535 번까지 할당이 가능하다.
0 ~ 1023은 잘 알려진 포트라고 하여 사용하지 않는 것이 좋다.
FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS - 443
DNS를 사용하는 이유?
DNS는 특정 컴퓨터 혹은 네트워크로 연결된 임의의 장치의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호로 변환해 준다.
참고자료:
김영한님의 인프런 강의 "모든 개발자를 위한 HTTP 웹 기본 지식"
쉽게 배우는 데이터 통신과 컴퓨터 네트워크, 한빛아카데미, 박기현 지음
https://kotlinworld.com/92
https://hahahoho5915.tistory.com/15
https://velog.io/@jehjong/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%9D%B8%ED%84%B0%EB%B7%B0-TCPIP-4%EA%B3%84%EC%B8%B5
https://ko.wikipedia.org/wiki/%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%84%A4%EC%9E%84_%EC%8B%9C%EC%8A%A4%ED%85%9C