인터넷은 인터넷 망을 통해 상대(서버)에게 내용을 주고 받는다.
그 방법이 IP(인터넷 프로토콜) 이다.
목적지에 IP주소에 데이터를 전달
패킷이라는 통신 단위로 데이터 전달
패킷 정보
출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등을 가진다.
클라이언트가 패킷을 인터넷을 통하여 전달할때 각 노드를 타고 전송되는데 서버에서 클라이언트로 전달할 때는 다른 노드 경로로 보내질 수 있다.
이러한 문제를 해결해주는 것이 바로 TCP 이다.
애플리케이션 계층 | HTTP, FTP, SSH 등 프로토콜
전송 계층 | TCP, UDP
인터넷 계층 | IP (인터넷 프로토콜)
네트워크 인터페이스 계층 | 물리적인 주소인 MAC, LAN, 패킷망 등
애플리케이션 계층 - 웹 브라우저, 온라인 게임, 메시신저 프로그램
애플리케이션 계층 : 프로그램이 메시지를 생성하고
socket 라이브러리를 통해 전달
전송 계층 : TCP정보 생성하고 메시지 데이터를 감싼다.
인터넷 계층 : IP 패킷을 생성, TCP정보 데이터를 감싼다.
네트워크 인터페이스 계층 : Ethernet frame을 감싸고 인터넷으로 전송
(MAC주고 같은 물리적인 것이 포함됌)
IP : 출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등
TCP: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증정보 등
연결지향 - TCP 3 way handshake (가상연결)
1. 클라이언트가 SYN를 서버로 전송
2. 서버가 SYN + ACK 전송
3. 클라이언트 ACK 전송
4. 데이터 전송
데이터 전달 보증
순서 보장
패킷순서가 맞지않으면 해당 부분부터 재전송 요청
신뢰할 수 있는 프로토콜
대부분 TCP 사용
위에서 언급한 TCP의 기능이 없다.
단순하고 빠름
IP와 거의 같고 PORT + 체크섬 정도 추가
애플리케이션에서 추가 작업 필요
최적화 용도로 사용
🏷️ 체크섬
중복 검사의 한 형태, 오류 정정을 통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
같은 IP(IP 주소)내에서 프로세스 구분
TCP/IP 패킷을 보면
-------------------
| 출발지 IP,PORT |
| 목적지 IP,PORT |
| 전송 데이터 등 |
-------------------
위에서 TCP/IP 패킷 정보를 보면 알 수 있다.
즉 클라이언트에서 여러가지 애플리케이션(게임, 음악 등)을 이용할 때
각 애플리케이션의 프로세스를 구분하는 용도이다.
0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트로 사용 지양
FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS - 443
도메인 명을 IP주소로 변환
DNS 도입 계기
IP 주소를 일일히 기억하기 어려움
IP 주소의 변경 가능성
DNS서버에는 도메인 명 | IP 주소
형태로 있다.
클라이언트가 DNS 서버에 도메인명을 요청하면
DNS 서버가 도메인 명에 맞는 IP 주소를 응답(반환)해준다.
클라이언트는 응답받은 IP주소로 접속한다.
출처 및 참고자료