TCP/IP 4계층 모델
링크 - 인터넷 - 전송 - 애플리케이션 계층
OSI 7계층(물리 - 데이터링크 - 네트워크 - 전송 - 세션 - 표현 - 애플리케이션)
각각의 계층은 독립적으로 설계되었음(특정 계층이 변경되어도 영향을 받지 않음)
예) TCP를 UDP로 변경했다고 해서 다시 브라우저를 설치하지 않아도 됨
애플리케이션 계층
사용자와 직접 맞닿는 응용프로그램이 사용되는 계층
HTTP(웹 데이터 통신)/ FTP(장치간 파일전송) / SMTP(전자메일전송) / SSH(보안) / DNS(도메인네임 to IP)가 있음
DNS
도메인네임을 IP주소로 매핑해주는 서버
1. www.naver.com에 DNS 쿼리가 오면(사용자가 검색하면)
2. .com DNS를 찾고 .naver를 찾고 .www DNS를 찾으며 완벽한 주소를 찾아 IP 주소를 매핑함
이를 통해서 서비스의 IP주소가 변경되어도 똑같은 도메인 주소로 서비스를 할 수 있음
전송 계층
송신자와 수신자를 연결하는 통신 서비스 제공
애플리케이션 계층과 인터넷 계층 사이에서 데이터 전달을 중계
TCP / UDP / QUIC가 있음
TCP
연결지향적
신뢰성 기반의 1:1 통신, 안정적으로 전송
3-way handshake 방식으로 신뢰성을 구축하여 1:1 통신을 안정적으로 함(4-way handshake 방식으로 연결을 해제함)
속도는 UDP에 비해 느림
신뢰성을 구축해서 수신여부를 확인하며 '가상회선 패킷 교환 방식' 사용
예시) HTTP 통신, 파일/메일 전송, 터미널 접속
3-way handshake 방식
TCP 통신에서 신뢰성있는 연결을 성립을 위해 3-way handshake 방식을 진행
이 방식을 통해 클라-서버 간 신뢰성을 구축하고, 이후 데이터 전송을 시작함(UDP는 이 과정이 없기 때문에 신뢰성이 없는 것)
1) SYN 단계: 클라가 서버와 통신을 하기 위해 시퀀스번호(예 100)와 함께 SYN 세그먼트을 전송
2) SYN + ACK 단계: 서버는 클라의 SYN을 수신하고, 서버의 시퀀스 번호(5000)와 승인번호(클라의 시퀀스번호 100 + 1)를 보냄
3) ACK 단계 : 클라는 서버로부터 자신의 시퀀스번호 + 1(101)을 받았으므로, 성공적으로 수행했다는 의미로 서버의 시퀀스 + 1(5001)을 서버에 보내면서 마무리
4-way handshake 방식
TCP 연결을 해제하기 위해 사용하는 방식
1) FIN 단계
클라가 서버와 통신을 해제하기 위해, FIN 세그먼트 전송(클라는 FIN_WAIT 1 상태)
2) ACK 단계
서버는 클라의 FIN을 받고, ACK 세그먼트 전송
이때, 서버는 CLOSE_WAIT 상태 / 클라가 ACK를 받으면 FIN_WAIT 2 상태가 됨
3) FIN 단계
서버는 ACK를 보내고 일정시간 이후에 FIN 세그먼트를 전송
이때, 서버는 LAST_ACK 상태 / 클라가 FIN을 받으면 TIME_WAIT 상태가 됨
4) ACK 단계
클라는 서버에게 ACK 세그먼트를 전송(이를 서버가 받으면 연결 종료인 CLOSE 상태가 됨)
클라는 전송한 이후로 일정시간 동안 TIME_WAIT 상태를 유지함
이렇게 일정 시간(우분투 1분, 윈도우 4분) TIME_WAIT 상태를 갖는 이유는
종료단계 이전에 보냈던 지연패킷을 처리하기 위함과
4번째 ACK 단계에서 클라가 보낸 ACK 세그먼트가 서버에 도착하지 않았다면 재전송을 하기 위해
가상회선 패킷 교환 방식
각 패킷에 가상회선 식별자를 포함시켜
전송된 순서대로 목적지에 도달하는 방식
모든 패킷을 전송하면 가상회선이 해제됨
UDP
비연결지향적
빠르게 전송하는 것에 목적(순서를 보장하지 않고 수신여부를 확인하지 않음)
단순히 데이터만 주는 '데이터그램 패킷 교환 방식' 사용
1:1 1:다, 다:다 통신 가능
예시) 스트리밍 서비스, DNS, 음성 통화, 게임
데이터그램 패킷 교환 방식
패킷이 독립적으로 이동하며 최적의 경로를 선택하여 목적지에 도달하는 방식
하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음 + 순서가 다를 수 있음
인터넷 계층
장치로부터 받은 네트워크 패킷을 목적지 IP 주소로 전송하기 위해 사용되는 계층
상대가 제대로 받았는지에 대해 보장하지 않는 비연결형 특성을 가짐
IP / ARP / ICMP가 있음
링크 계층
전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간 신호를 주고받는 규칙을 정하는 계층
네트워크 접근 계층이라고도 불림
대표적으로 이더넷이 있음
물리 계층과 데이터 링크 계층으로 나누어짐
물리 계층은 유선/무선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
데이터 링크 계층은 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층