1. IP 인터넷 프로토콜
- 지정한 IP 주소 (IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
- IP 패킷 정보
- 출발지 IP, 목적지 IP
- IP 프로토콜의 한계
- 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성
- 중간에 패킷이 사라지면?
- 패킷이 순서대로 안 오면?
- 프로그램 구분
- 대상이 서비스 불능, 패킷 전송
- 대상 서버가 패킷을 받을 수 있는 상태인지 모름
- 패킷 소실
- 패킷 전달 순서 문제 발생
- 이런 문제를 해결해 주는 것이 TCP, UDP
2. 인터넷 프로토콜 스택의 4 계층
- 네트워크 인터페이스 계층
- 인터넷 계층 - IP
- 전송계층 - TCP, UDP
- 애플리케이션 계층 - HTTP, FTP
3. 프로토콜 계층
- 애플리케이션
- 웹 브라우저, 네트워크 게임, 채팅 프로그램
- SOCKET 라이브러리
- OS
- TCP, UCP
- IP
- 네트워크 인터페이스
- LAN 드라이버, LAN 장비
- EX.
- 1. 프로그램이 Hello, world! 메시지 작성
- 2. socket 라이브러리를 통해 전달
- 3. TCP 정보 생성, 메시지 데이터 포함
- 4. IP 패킷 생성, TCP 데이터 포함
3. TCP/IP
- IP 패킷: 출발지 IP, 목적지 IP, 기타
- TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보
- IP로만 해결이 되지 않았던 문제 해결
- 전송제어 프로토콜
- 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재는 대부분 TCP 사용
- TCP 3 way handshake
- 1. 클라이언트에서 SYN 이란 메시지를 보냄
- 2. 서버에서 ACK(+SYN)라는 메시지를 보내면 보냄
- 3. 클라이언트에서 서버에게 SYN을 보냄
- 3 - way handshaking을 하면 클라이언트도 서버를 믿을 수 있고, 서로 믿을 수 있
- 4. 연결이 되면 그다음에 데이터를 전송함
- * 이건 개념적으로만 연결이 된 것, 논리적으로만
- 순서 보장
- 1. 클라이언트가 패킷 1, 패킷 2, 패킷 3 순서로 전송
- 2. 서버에 패킷 1, 패킷 3, 패킷 2 순서로 도착
- 3. 서버가 클라이언트에게 패킷 2부터 다시 보내라는 요청
4. UDP
- 사용자 데이터그램 프로토콜 (User Datagram Protocol)
- 하얀 도화지에 비유 (기능이 거의 없음)
- 연결지항 - TCP 3 way handshake x
- 데이터 전달보증 x
- 순서 보장 x
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같음 + PORT + 체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
5. PORT
- 한 번에 서버가 여러 개를 통신해야 함
- IP에 더해서 포트란 개념이 있음
- 0 ~ 65535 할당 가능
- 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20,21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
6. DNS
- IP는 기억하기 어렵고, 변경될 수 있음
- 도메인 네임 시스템
- 전화번호부
- DNS 서버에 등록하고, DNS 서버에서 클라이언트에게 응답한 후 클라이언트는 서버에 접속
'정보보안 (기술) > HTTP 웹' 카테고리의 다른 글
HTTP6. HTTP 메서드 활용 (1) | 2024.07.14 |
---|---|
HTTP5. HTTP PUT, PATCH, DELETE (0) | 2024.07.14 |
HTTP4. HTTP API, GET, POST (0) | 2024.07.14 |
HTTP3. HTTP 기본 (1) | 2024.07.14 |
HTTP2. URI (0) | 2024.07.14 |