- 개요
- 핵심 용어
- TCP/IP 계층 구조
- 애플리케이션 계층 (Application Layer)
- 전송 계층 (Transport Layer)
- 인터넷 계층 (Internet Layer)
- 링크 계층 (Link Layer)
- 계층 간 데이터 송수신 과정
- HTTP를 통해 웹 서버에 있는 데이터를 요청하면 일어나는 일
- PDU (Protocol Data Unit)
- 참고자료
TCP/IP 4계층 모델을 사용하여 네트워킹 과정을 설명한다.
인터넷 프로토콜 스위트(internet protocol suite)
: 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합프로토콜
: 컴퓨터 내부에서, 또는 컴퓨터간 데이터의 교환 방식을 정의하는 규칙 체계패킷
: 컴퓨터 네트워크에서 데이터를 전송하는 단위PDU(Protocol Data Unit)
: 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위이더넷(Ethernet)
: 컴퓨터 네트워크 기술 중 가장 보편적으로 사용되는 유선 LAN(Local Area Network) 기술 중 하나
보통 TCP/IP 4계층과 OSI 7계층 두 계층구조를 많이 비교한다.
-
각 계층들은 특정 계층이 변경되었을 때, 다른 계층이 영향 받지 않도록 설계되어있다.
-
TCP/IP 4계층과 OSI 7계층의 차이점
- TCP/IP 계층은 4개의 계층을 가지고 있다.
- OSI 계층은 애플리케이션 계층을 3개로 나누고 링크 계층을 2개로 나눠서 표현한다.
- OSI 계층은 인터넷 계층을 네트워크 계층이라 부른다.
- 의미: 응용 프로그램이 사용되는 프로토콜 계층으로 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 계층이다.
-
ex) FTP, HTTP, SSH, SMTP, DNS 등
FTP: 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
HTTP: World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 사용하는 프로토콜
SSH: 보완되지 않은 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
SMTP: 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
-
-
의미: 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층
-
특징
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있다.
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계역할을 한다.
- 대표적인 전송 계층: TCP, UDP
TCP | UDP | |
---|---|---|
순서 보장 | O | X |
수신 여부 확인 | O | X |
패킷 교환 방식 | 가상회선 패킷 교환 방식 | 데이터그램 패킷 교한 방식 |
사용 예시 | HTTP 통신, E-mail, 파일 전송, 메일 전송 등 | DNS 조회, 스트리밍 서비스, 실시간 멀티미디어 전송 등 |
- TCP의 경우 사용자 간 데이터 교환이 필요하고, 신뢰성이 요구되는 상황에서 주로 사용한다. 반면, UDP는 빠른 연결, 빠른 속도로 전송하고자 하며 실시간성이 보장되어야 하는 상황에서 사용한다.
가상회선 패킷 교환 방식: 각 패킷에 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식
데이터그램 패킷 교환 방식: 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있는 방식
TCP는 아래 3-way handshake 작업을 통해 신뢰성을 확보한다.
- SYN 단계: 클라이언트가 서버에 클라이언트의 ISN을 담아 SYN을 보낸다.
- SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다.
- ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK을 서버에 보낸다.
SYN: SYNchronization의 약자, 연결 요청 플래그
ACK: ACKnowledgement의 약자, 응답 플래그
ISN: Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당한 32비트 고유 시퀀스 번호
TCP는 위 과정이 있기 때문에 신뢰성이 있는 계층이라고 하며, UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 한다.
TCP는 아래 4-way handshake 과정을 통해 연결을 해제한다.
- 클라이언트가 연결을 닫으려고 할 때, FIN으로 설정된 세그먼트를 보낸다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
- 서버는 클라이언트로 ACK이라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트는 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
- 서버는 ACK을 보내고 일정 시간 이후 클라이언트에 FIN이라는 세그먼트를 보낸다.
- 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원 연결이 해제된다.
TIME_WAIT: 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태로 OS마다 시간은 조금씩 다를 수 있다.
-
TIME_WAIT의 이유
-
지연 패킷이 발생할 경우를 대비하기 위함
→ 패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제가 발생한다.
-
두 장치가 연결이 닫혔는지 확인하기 위함
데이터 무결성(Data integrity): 데이터의 정확성과 일관성을 유지하고 보증하는 것
-
-
의미: 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- ex) IP, ARP, ICMP 등
-
특징
- 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형적인 특징이 있다.
-
의미: 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
-
물리 계층과 데이터 링크 계층으로 나누기도 한다.
-
물리 계층: 유선 LAN과 무선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
-
데이터 링크 계층: '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층
-
-
IEEE802.3 프로토콜 사용
-
전이중화 통신 사용
전이중화 통신: 양쪽 장치가 동시에 송수신할 수 있는 방식이다. 송신로와 수신로로 나눠서 데이터를 주고받으며, 현대의 고속 이더넷은 이 방식을 기반으로 통신한다.
-
유선 LAN 케이블
-
트위스트 페어 케이블: 여덟개의 구리선을 두 개씩 꼬아서 묶은 케이블. 구리선을 실드 처리하지 않고 덮은 UTP와 실드 처리하고 덮은 STP로 나뉘는데, 흔히 쓰이는 케이블은 UTP이다.
-
광섬유 케이블: 광섬유로 만든 케이블. 레이저를 이용하여 통신하기 때문에 구리선과는 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능하다.
-
-
IEEE802.11 프로토콜 사용
-
반이중화 통신 사용
반이중화 통신: 양쪽 장치가 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식이다. ex) CSMA/CA
CSMA/CA: 반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식을 사용한다.
-
무선 LAN(WLAN, Wireless Local Area Network) 주파수
-
주파수 대역은 2.4GHz 대역 또는 5GHz 대역 중 하나를 사용한다.
-
wifi: 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술로, 이를 사용하기 위해선 무선 접속 장치(AP, Access Point)가 있어야 한다. 무선 LAN을 이용한 기술은 와이파이 뿐만 아니라 지그비, 블루투스 등이 있다.
-
BSS(Basic Service Set): 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신 가능한 구조를 말한다.
-
ESS(Extended Service Set): 하나 이상의 연결된 BSS 그룹을 말한다. 장거리 무선 통신을 제공하며, BSS보다 더 많은 가용성과 이동성을 지원한다.
-
-
OSI 7계층 중 데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화한다.
-
이더넷 프레임 구조
- Preamble: 이더넷 프레임이 시작임을 알린다
- SFD(Start Frame Delimiter): 다음 바이트부터 MAC 주소 필스가 시작됨을 알린다
- DMAC, SMAC: 수신, 송신 MAC 주소를 말한다
- EtherType: 데이터 계층 위의 계층인 IP 프로토콜을 정의한다. ex) IPv4, IPv6
- Payload: 전달받은 데이터
- CRC: 에러 확인 비트
MAC: 각 장치에 존재하는 LAN 카드의 식별번호. 6byte(48bit)로 구성된다.
데이터는 캡슐화 과정과 비캡슐화 과정을 거쳐 전송된다.
-
의미: 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
- 애플리케이션 계층 → 전송 계층: '세그먼트' 또는 '데이터그램'화
- 전송 계층 → 인터넷 계층: '패킷'화
- 인터넷 계층 → 링크 계층: '프레임'화
- 어플리케이션 계층에서 전송 계층으로 요청 값들이 캡슐화 과정을 거쳐 전달된다.
- 다시 링크 계층을 통해 해당 서버와 통신을 한다.
- 해당 웹 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송된다.
-
의미: 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
-
특징
-
제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성되어 있다.
-
계층마다 부르는 명칭이 다르다.
- 애플리케이션 계층: 메세지
- 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층: 패킷
- 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
-
-
블로그
-
공식 문서
-
깃허브
-
영상 자료