인터넷 통신
- 인터넷 세계에서 컴퓨터 둘이 물리적으로 붙어있다면 케이블로 바로 연결해서 데이터를 받으면 됨
- 하지만 현재 우리 세상의 인터넷은 굉장히 복잡하고 서로의 컴퓨터에게 데이터를 전송하기 위해서는 수 많은 중간 서버들을 거쳐야 함
IP (Internet Protocol)
- 그래서 등장한 것이 인터넷 상에서의 주소 개념인
IP
- IP의 역할
- 지정한 IP 주소에 데이터 전달
- 패킷이라는 통신 단위로 데이터 전달
- 데이터를 보낼 때
출발지 ip
와목적지 ip
를 헤더에 적어서 같이 보내줌 - 인터넷은 다 같은 규약을 따르고 있기 때문에 인터넷 상의 노드들이 서로 ip주소를 물어가면서 최종적인 목적지에 도착하여 데이터를 전송
BUT- IP 프로토콜의
한계가 존재
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송
- 비신뢰성
- 중간에 패킷이 사라지면?
- 패킷이 순서대로 안오면?
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
- 비연결성
- IP 프로토콜의
TCP, UDP
- 인터넷 프로토콜 스택의 4계층
- 애플리케이션 계층 (HTTP, FTP)
- 전송 계층 (TCP, UDP)
- 인터넷 계층 (IP)
- 네트워크 인터페이스 계층
- 전체적인 프로세스
- 프로그램이 메세지 생성
- SOCKET 라이브러리를 통해 전달
- TCP 정보 생성 (PORT 정보 + 전송 제어, 순서, 검증 정보 등)
- IP 패킷 생성, TCP 데이터 포함
- 마지막으로 인터넷으로 나갈 때는 Ethernet frame까지 포함되어서 나감
- TCP 특징
- Transmission Control Protocol
- 연결지향 -> 3 way handshake (가상 연결)
- SYN, SYN+ACK, ACK 3번 주고 받아서 연결되고 난 후 데이터를 전송
- 하지만, 개념적으로만 연결된 것이지 물리적으로 연결된 것은 아님
- SYN, SYN+ACK, ACK 3번 주고 받아서 연결되고 난 후 데이터를 전송
- 데이터 전달 보증
- 데이터를 전송하면 잘 받았다는 메세지를 다시 보내줌
- 순서 보장
- 순서가 뒤바뀐 경우 다시 보내달라는 요청을 함
- UDP 특징
- User Datagram Protocol
- 연결지향 x
- 데이터 전달 보증 x
- 순서 보장 x
BUT, 단순하고 빠름
- User Datagram Protocol
PORT
- 하나의 IP에서 여러 개의 애플리케이션(프로세스)를 구분하기 위해 사용
- TCP Layer에서 사용
- 0 ~ 65535: 할당 가능
- 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
DNS
- IP는 기억하기 어렵고 변경될 수 있음
- DNS (Domain Name System)
- DNS서버에 IP를 등록해 둠으로써
- 기억하기 어려운 문제와
- 변경될 수 있는 문제 둘 다 해결 가능
- DNS서버에 IP를 등록해 둠으로써
김영한 님의
모든 개발자를 위한 HTTP 웹 기본 지식
보고 작성한 내용입니다.
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'BE > HTTP' 카테고리의 다른 글
[HTTP] 4. HTTP 메서드 (0) | 2024.10.13 |
---|---|
[HTTP] 3. HTTP 기본 (1) | 2024.10.13 |
[HTTP] 2. URI와 웹 브라우저 요청 흐름 (0) | 2024.10.13 |