반응형
TCP/IP 4계층
- OSI 7계층 보다 보다 간소화 된 모델
- 애플리케이션 계층 - HTTP, FTP
- 전송계층 - TCP, UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층(랜카드, Mac등) (마지막 포장)
인터넷 통신
- 클라이언트, 서버가 인터넷 환경에서 통신하는 것
- 굉장히 복잡하므로 각자의 주소(IP)가 필요하다.
패킷
- 패키지와 , 버킷의 합성어
- 다중 포장한 선물 상자라 생각
IP (인터넷 프로토콜)
- 복잡한 인터넷 망에서 목적지를 찾을 수 있게 하는 주소다
- 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달
- 100.100.100.1(클라이언트 패킷 전달) → 200.200.200.2 (서버 패킷 전달) → 100.100.100.1
- 한계
- 비 연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태에서도 패킷 전송 (우편 보내듯이)
- 비 신뢰성
- 중간에 패킷이 사라지면?
- 패킷이 순서대로 전달 되지 않으면? (world hello)
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
- 비 연결성
TCP (전송 제어 프로토콜)
- IP 프로토콜의 한계를 보완하며 신뢰할 수 있는 프로토콜이다. 현재 대부분 TCP를 사용한다.
- 연결지향 - 3 way handshake (논리적인 연결, 가상 연결)
- Sync (클라)
- Syn + Ack (서버)
- Ack (클라)
- 데이터 전송
- 데이터 전달 보증
- 데이터 전송 → 데이터잘 받았음을 서버에서 보내줌
- 순서 보장
- 패킷 1, 패킷2 패킷3 순서로 전송 → 패킷1, 패킷3, 패킷2로 도착
- 패킷 2부터 재전송 요청
UDP
- 3way, 데이터 전달 보증, 순서보장 하지 않음
- TCP 대비 단순하고 빠름
- IP프로토콜에서 PORT 체크섬만 된다
- 하나의 IP에서 프로그램을 구분해준다.
- 영상전달시 사용하는 것이었으나 최근에는 이마저도 TCP
- http3 스펙에 오면서 각광받고 있다.
PORT
- 하나의 IP에 게임, 화상통화, 웹브라우저 요청을 한번에 하려면?
- IP 목적지에서 어플리케이션을 구분하기 위해 존재함
- 같은 IP 내에서 프로세스 구분 (IP가 아파트면, PORT는 호수)
DNS (도메인 네임 시스템)
- IP는 변경될 수 있다. (100.100.100.1)
- 전화번호부, 도메인 명을 IP 주소로 변환 시켜준다.
- IP기억하기 어려운 문제와 IP변경시 문제를 해결해준다.
Socket 라이브러리
- 애플리케이션 계층에서 전송계층으로 전달할 때 이용된다.
Reference
- 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한)
'웹' 카테고리의 다른 글
[Web] RESTful API란? (0) | 2021.07.03 |
---|---|
[Web] JSON (gson) (0) | 2021.04.20 |
[Web] 포트포워딩 적용이 안될 때 (80 -> 8080) (0) | 2021.03.23 |
[Web] 상대주소 표기법과 절대주소 표기법 (0) | 2020.11.08 |
[Bootstarp] 부트스트랩 개념 정리 (0) | 2020.11.08 |