인터넷 프로토콜 스위트
계층들은 특정 계층이 변경되어도 다른 계층이 영향을 받지 ㅇ낳는다.
애플리케이션 계층 (Application Layer)
- FTP
- 장치와 장치간의 파일을 전송하는 데 사용되는 표준 프로토콜
- SSH
- 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP
- World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP
- 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS
- 도메인 이름과 IP 주소를 매핑해주는 서버
- TCP
- 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인하며 '가상회선 패킷 교환 방식'을 사용
- 가상 회선 패킷 교환 방식
- 데이터를 전송하기 전에 논리적 연결이 설정되는데, 이를 가상회선이라고 한다.(연결 지향형) 각 패킷에는 가상회선 식별 번호(VCI)가 포함되고, 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착한다.
- UDP
- 순서를 보장하기 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 '데이터 그램 패킷 교환 방식'을 사용
- 데이터 그램 패킷 교환 방식
- 데이터 전송 전에 송/수진자 사이에 가상 회선이라 불리는 논리적 경로를 설정하지 않고, 패킷들이 각기 독립적으로 전송되는 방식
- 각 패킷이 독립적으로 최적의 경로를 선택하기 때문에 도착 순서가 다를 수 있다.
TCP 연결 성립 과정
3-way handshake
➊ SYN 단계: 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보냄.
ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며(예시로 12010) 이는 장치마다 다를 수 있음
➋ SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보냄
➌ ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보냄
이렇게 3-웨이 핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작
TCP는 이 과정이 있기 때문에 신뢰성이 있는 계층이라고 하며 UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층
- SYN
- SYNchronization의 약자, 연결 요청 플래그
TCP 연결 해제 과정
• 1번: 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보냄
클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다림
• 2번: 서버는 클라이언트로 ACK라는 승인 세그먼트를 보냄
CLOSE_WAIT 상태에 들어감. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어갑니다.
• 3번: 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냄
• 4번: 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태
이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제
TIME_WAIT 을 하는 이유
- TIME_WAIT
- 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태
- 지연 패킷 등의 문제점을 해결하는 데 사용
- CentOS6, 우분투에는 60초로 설정되어 있으며 윈도우는 4분으로 설정.
- 즉, OS마다 조금씩 다를 수 있다.
- 데이터 무결성(data integrity)
- 데이터의 정확성과 일관성을 유지하고 보증하는 것
인터넷 계층 (Internet Layer)
링크 계층 (Link Layer, Network Interface)
유선 LAN(IEEE802.3)
유선 LAN을 이루는 케이블
무선 LAN(IEEE802.11)
무선 LAN을 이루는 주파수 (WLAN, Wireless Local Area Network)
- MAC 주소
- 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데, 이를 구별하기 위한 식별번호를 말한다. 6바이트(48비트)로 구성된다.
네트워크 통신 기능을 7개의 계층으로 나누는 개념적 프레임워크
상이한 컴퓨터 시스템이 서로 통신할 수 있는 표준을 제공
모델의 어느 특정 계층으로 문제를 좁힐 수 있을 경우 불필요한 많은 작업을 피할 수 있음
응용 프로그램 계층
프레젠테이션 계층
세션 계층
전송 계층
네트워크 계층
데이터 연결 계층
물리적 계층