🟡 인터넷 통신
두 PC가 통신할때, 어떻게 통신할까?
- 가깝다면 케이블로 연결해서 통신하는 방법이 존재.
그러나 거리가 멀다면?
- 인터넷을 사용하여 통신.
- 두 PC 사이에 매우 많은 노드들이 복잡하게 존재하고, 여러 노드들을 거쳐 목적지에 도착하여 통신하는 형태
🟡 IP(인터넷 프로토콜)
각 PC는 IP주소를 가지고 있고, 이 IP주소를 가지고 통신한다.(IP: 논리적 주소)
- 지정한 IP 주소에 패킷(Packet)이라는 통신 단위로 데이터를 전달
- IP 패킷은 출발지 IP, 목적지 IP 등으로 구성 됨
(+ 요청과 응답시 서로 다른길로 전달이 가능하다. 무조건 같은 루트를 사용하는 것이 아니다.)
IP 프로토콜의 한계점
- 비연결성: 패킷을 받을 상대가 없거나, 서비스가 불능 상태여도 데이터를 전송
- 비신뢰성: 중간에 패킷이 소실되거나, 순서대로 안 올 가능성 존재(패킷마다 다른 루트 사용 가능)
- 프로그램 구분: 한 PC에서 게임도 하고, 음악도 듣고... 그렇다면 어느 애플리케이션으로 데이터를 전송해야 하나?
🟡 TCP
앞서 언급한 IP의 문제점을 TCP가 해결
인터넷 프로토콜 스택의 4계층
프로토콜 계층
TCP 패킷에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등이 존재한다. (IP만으로는 해결이 안 됐던 것들)
TCP 특징
- 전송 제어 프로토콜(Transmission Control Protocol)
- 연결지향: TCP 3 way handshake(논리적 연결)
- 데이터 전달 보증(누락되면 알 수 있음)
- 순서 보장(잘못오면 재요청)
TCP 3 way handshake
- 논리적 연결(가상 연결)
- 전용 랜선이 생긴다는 것이 아니다.
🟡 UDP
사용자 데이터그램 프로토콜(User Datagram Protocol)
- 기능이 거의 없음
- 연결지향 X
- 데이터 전달 보증 X
- 순서 보장 X
- IP에 PORT, 체크섬 정도만 추가됨
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름(TCP는 시간이 느리다)
🟡 PORT
위에서 TCP 패킷이 출발지 PORT, 목적지 PORT 정보를 갖고 있다고 언급
- PORT: 같은 IP 내에서 프로세스 구분
- 하나의 PC에서 게임, 음악 감상, 웹 브라우저 등을 사용할 때 각 프로세스가 PORT 번호를 다르게 갖고 있음
- IP는 아파트, PORT는 호수라고 생각하면 된다
- 0~65585 할당 가능
- 0~1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
🟡 DNS
IP는 기억하기 어렵고, 변경될 수 있다.
DNS
도메인 네임 시스템(Domain Name System)
- 전화번호부와 같다고 생각
- 도메인 명을 IP주소로 변환
이 글은 인프런 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 들으며 학습한 내용을 토대로 작성되었습니다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] HTTP 상태코드 (0) | 2023.01.17 |
---|---|
[네트워크] HTTP 메서드 활용 (0) | 2023.01.16 |
[네트워크] HTTP 메서드(GET, POST, PUT, PATCH, DELETE) (0) | 2023.01.16 |
[네트워크] HTTP(클라이언트 서버 구조, stateless, 비 연결성, HTTP 메시지) (0) | 2023.01.12 |
[네트워크] URI와 웹 브라우저 요청 흐름 (0) | 2023.01.11 |
댓글