본 포스트는 '면접을 위한 CS 전공지식 노트'를 기반으로 공부한 내용을 정리한 포스트입니다.
TCP/IP 4계층
OSI 7계층
사진 출처
특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨
FTP, HTTP, SSH, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
웹서비스, 이메일 등 서비스를 제공하는 계층
전송(transport) 계층
송진자와 수신자를 연결하는 통신 서비스를 제공
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 등을 제공할 수 있음
대표적으로 TCP, UDP
TCP
패킷 사이의 순서를 보장
연결지향 프로토콜
신뢰성 보장
수신 여부 확인
가상회선 패킷 교환 방식 사용
UDP
순서를 보장하지 않음
수신 여부 확인하지 않음
데이터그램 패킷 교환 방식 사용 (단순히 데이터만 줌)
가상회선 패킷 교환 방식 (virtual circuit)
각 패킷에 가상회선 식별자가 포함되며, 모든 패킷을 전송하면 가상 회선이 해제되고, 패킷들을 전송된 '순서대로' 도착하는 방식
데이터그램 패킷 교환 방식
패킷이 독립적으로 이동하며 최적의 경로를 선택하여 전송됨
하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음
도착한 '순서가 다를 수' 있는 방식
TCP는 신뢰성 확보를 위해 연결 시 '3-way handshake' 라는 과정을 통해 연결을 함
사진 출처 및 설명 참조
연결 해제 시에는 '4-way handshake'를 통해 연결을 해제함.
연결해제 시 서버로부터
FIN
을 받은 클라이언트가 곧바로 종료하지 않은 이유
1. 지연된 패킷을 기다리기 위해
네트워크 상의 문제 등을 이유로 서버에서 전송한 패킷이 지연될 수 있기 때문에 일정 시간을 기다려서 모든 패킷이 도착하기를 기다리는 것.
2.FIN
을 받은 클라이언트는 서버에게ACK
을 보내게 되는데 이ACK
이 서버에게 제대로 도착하지 않은 경우 서버측이 정상적으로 종료되지 못하기 때문에 이를 방지하기 위해 일정 시간 기다림. (서버측에서ACK
이 도착하지 않으면 다시FIN
을 보낼수도 있음)
추가 설명 참조 링크
IP 주소를 사용하여 지정된 목적지로 전송하기 위해 사용되는 계층
사용되는 프로토콜 : IP, ARP, ICMP 등
패킷을 수신해야할 상대의 주소(목적지 주소)를 지정하여 데이터를 전달
Best Effort 방식 : 상대방의 수신 여부를 보장하지 않음
전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 '규칙'을 정하는 계층
전이중화 통신 (Full duplex)
양쪽 장치가 동시에 송수신할 수 있는 방식
현대 고속 이더넷이 이 방식을 기반으로 통신함
CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
반이중화 통신 중 하나 (송수신이 동시에 X)
데이터 전송 시 충돌이 감지되면 일정 시간 이후 재전송하는 방식
반이중화 통신(half duplex)
양쪽 장치는 서로 통신할 수 있지만, 동시에 통신 X
한번에 한 방향만 송신가능 (반대쪽에서는 수신만)
CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
반이중화 통신 중 하나
애플리케이션 계층에서 아래 계층으로 내려가며 캡슐화 과정을 거치고, 수신측에서는 비캡슐화 과정을 거쳐 데이터를 수신함
PDU : 네트워크 한 계층에서 다음 계층으로 데이터가 전달될 때의 단위
PDU는 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성됨
계층마다 부르는 명칭이 다름