면접 질문 중 한 번씩 나올 수 있는 TCP/IP 4계층 모델을 공부해보자
인터넷에서 컴퓨터들이 서러 정보를 주고받는데 쓰이는 프로토콜의 집합이며, TCP/IP 4계층, OSI 7계층 모델로 설명할 수 있음
FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층이다.
장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜
보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는데 쓰는 프로토콜
전자 메일 발송을 위한 인터넷 표준 통신 프로토콜
도메인 이름과 IP 주소를 매핑해주는 서버
송신자와 수신자를 연결하는 통신 서비스를 제공한다.
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 제공, 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때까지 중계 역할을 한다.
대표적으로 TCP, UDP가 있음.
패킷 사이의 순서를 보장하며 연결지향 프로토콜을 사용해서 연결하여 신뢰성을 구축해서 수신 여부를 확인하며 가상회선패킷 교환 방식을 사용함.
각 패킷에는 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해체되고 패킷들은 전송된 순서대로 도착하는 방식을 말함.
TCP는 신뢰성을 확보할 떄 3-way handshake 작업을 진행한다.
SYN
Synchronization의 약자, 연결 요청 플래그
ACK
Acknowlegement의 약자, 응답 플래그
ICN
Initial Sequence Number의 약자, 초기 네트워크 연결시 할당된 32비트 고유 시퀀스 번호
3-웨이-핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작함.
TCP는 이 과정이 있기 떄문에 신뢰성이 있는 계층이며 UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 한다.
1.클라가 연결을 닫으려고 할때 FIN으로 설정된 세그먼트를 보내고 FIN_WAIT_1 상태러 들어가고 서버의 응답을 기다림
2.서버는 클라에게 ACK 승인 세그먼트를 보냄. 그리고 CLOSE_WAIT 상태에 들어감, 클라가 받으면 FIN_WAIT_2상태에 들어감
3.서버는 ACK를 보내고 일정 시간 이후에 클라이언트에게 FIN이라는 세그먼트를 보냄
4.클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED상태가 됨. 클라는 어느정도 대기한 후 연결이 닫힘 양 쪽다 모든 자원 연결 해제됨
TIME WAIT을 하는 이유?
순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 데이터그램 패킷 교환 방식을 사용한다.
패킷이 독립적으로 이동하여 최적의 경로를 선택하여 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 순서가 다를 수 있음.
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
IP,ARP,ICMP 등이 있으며 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달
상대방이 제대로 받았는지 보장X(비연결형적 특성)
전선, 광섬유, 무선 등으로 실직적으로 데이터를 전달하며 장치간에 신호를 주고받는 규칙을 정하는 계층
네트워크 접근 계층이라고도 함