[1] IP(인터넷 프로토콜; Internet Protocol)
- 지정한 IP 주소(IP Address)에 데이터를 패킷(Packet)이라는 통신 단위로 나눠서 전달한다.
- IP 패킷은 전송 데이터와 출발지 IP, 목적지 IP 등의 내용을 포함하고 있다.
- IP의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다.
- 비신뢰성
- 중간에 패킷이 사라질 수 있다.
- 패킷의 도착 순서가 처음과 달라질 수 있다.
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 때 구분이 어렵다.
[2] TCP와 UDP
- TCP/IP 패킷은 출발/목적지 PORT, 전송 제어, 순서, 검증 정보 등이 포함되어 있어 IP 만으로 해결되지 않았던 순서와 관련된 문제가 해결이 된다.
- TCP (전송 제어 프로토콜; Transmission Control Protocol) 특징
- 연결 지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- SYN(접속 요청)과 ACK(요청 수락)의 과정을 거치면서 서로 연결된 것을 확인 후 데이터를 전송한다. 최근에는 단계 3에서 데이터도 같이 전송한다. 이 연결은 물리적인 연결이 보장됐다는 것이 아니라 논리적으로 연결되었음을 의미한다.
- 데이터를 전송하면 서버에서 데이터를 받았다는 응답을 한다.
- 서버에 패킷이 순서대로 도착하지 않았다면, 서버는 순서가 잘못된 부분부터 다시 보내달라는 요청을 한다.
- UDP (사용자 데이터그램 프로토콜; User Datagram Protocol)
- 데이터 전달 및 순서가 보장되진 않지만, 단순하고 빠르다.
- IP와 거의 같고, PORT 정보, 체크섬 정도만 추가되어 있다.
- PORT 정보로 하나의 IP에서 여러 애플리케이션을 구분한다.
- 체크섬은 데이터를 검증하는데 사용된다.
- 애플리케이션 레벨에서 추가 작업이 필요하다.
[3] PORT
- TCP/IP 패킷 내에 들어있는 PORT 정보는 같은 IP 내에서 서로 다른 프로세스를 구분할 수 있게 해준다.
- 0~65535 까지 할당이 가능하고, 0~1023은 잘 알려진 포트로, 사용하지 않는 것이 좋다.
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
[4] DNS (Domain Name System)
- DNS 서버에 도메인을 등록해두면, google.com 을 요청했을 때 DNS 서버가 IP 주소를 알려주고 클라이언트에서 그 IP 주소로 서버에 요청한다. DNS 서버가 IP 주소를 관리하기 때문에 IP 주소 변경이 있더라도 문제가 되지 않는다.
[출처] "(인프런) 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한" 강의를 듣고 내용을 정리함.
'웹개발을 위한 HTTP 기초 지식' 카테고리의 다른 글
[HTTP] 6. HTTP 상태 코드 (0) | 2021.04.07 |
---|---|
[HTTP] 5. HTTP 메서드 활용 (0) | 2021.04.07 |
[HTTP] 4. HTTP 메서드 (0) | 2021.04.07 |
[HTTP] 3. HTTP 기본 (0) | 2021.04.06 |
[HTTP] 2. URI와 웹 브라우저 요청 흐름 (0) | 2021.04.06 |