인터넷 프로토콜 스위트(internet protocol suite)
: 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
-> 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명
계층 구조

TCP/IP 계층과 비교한 OSI 계층
- 애플리케이션 계층 : 세 개로 쪼갬
- 링크 계층 : 데이터 링크 계층, 물리 계층으로 나눠서 표현
- 인터넷 계층 : 네트워크 계층이라고 부름
이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계
ex. 전송 계층에서 TCP를 UCP로 변경 => 인터넷 웹 브라우저를 다시 설치해야하는 것은 아님
각 계층을 대표하는 스택

애플리케이션 계층
: FTP, HTTPS, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공
FTP
: 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
SSH
: 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 네트워크 프로토콜
HTTP
: WWW을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
SMTP
: 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
DNS
: 도메인 이름과 IP 주소를 매핑해주는 서버
전송 계층
: 송신자와 수신자를 연결하는 통신 서비스를 제공
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 제공
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할
- 대표적 예: TCP, UDP
TCP
- 패킷 사이의 순서 보장 O
- 연결지향 프로토콜 사용하여 연결 -> 신뢰성 구축하여 수신 여부 확인 O
- '가상회선 패킷 교환 방식' 사용
UDP
- 순서를 보장 X
- 수신 여부 확인 X
- 단순히 데이터만 주는 '데이터그램 패킷 교환 방식' 사용
가상회선 패킷 교환 방식 (TCP)
- 각 패킷에는 가상회선 식별자가 포함
- 모든 패킷을 전송 후 가상회선 해제
- 패킷들은 전송된 순서대로 도착하는 방식

데이터그램 패킷 교환 방식 (UDP)
: 패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는 방식
- 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있음
- 도착한 순서가 다를 수 있음

TCP 연결 성립 과정
TCP는 신뢰성을 확보할 때 '3-웨이 핸드셰이크(3-way handshake)' 작업 진행

- SYN 단계
• 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다
• ISN = 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호 (장치마다 다름) - SYN + ACK 단계
• 서버는 클라이언트의 SYN을 수신
• 서버는 서버의 ISN을 보냄
• 승인번호로 클라이언트의 ISN + 1을 보냄 - ACK 단계
• 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보냄
3-웨이 핸드셰이크 과정 이후 신뢰성 구축되고 데이터 전송 시작
=> TCP는 이 과정이 있기 때문에 신뢰성이 있는 계층이라고 함, UDP는 이 과정이 없어서 신뢰성 X 계층
SYN
: SYNchronization의 약자, 연결 요청 플래그
ACK
: ACKnowledgement의 약자, 응답 플래그
ISN
: Initial Sequence Numbers의 약어, 초기 네트워크 연결 시 할당된 32비트 고유 시퀀스 번호
TCP 연결 해제 과정
4-웨이 핸드셰이크 과정 발생
- 1번:
• 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트 보냄
• 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다림 - 2번:
• 서버는 클라이언트로 ACK라는 승인 세그먼트를 보냄
• CLOSE_WAIT 상태에 들어감
• 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어감 - 3번:
• 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트 보냄 - 4번:
• 클라이언트는 TIME_WAIT 상태가 됨
• 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 됨
• 클라이언트는 어느 정도의 시간을 대기 후 연결을 닫음
• 클라이언트와 서버의 모든 자원의 연결 해제
TIME_WAIT로 굳이 일정 시간 뒤에 닫는 이유는?
1. 지연 패킷이 발생할 경우를 대비하기 위함
• 패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제 발생
2. 두 장치가 연결이 닫혔는지 확인하기 위함
• LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK -> 접속 오류
TIME_WAIT
소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태
데이터 무결성 data integrity
데이터의 정확성과 일관성을 유지하고 보증하는 것
인터넷 계층
: 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- IP, ARP, ICMP 등
- 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달
- 상대방이 제대로 받았는지 보장 X => 비연결형적인 특징
링크 계층 = 네트워크 접근 계층
: 전선, 광섬유, 무선 등으로 실질적인 데이터를 전달하며 장치 간에 신호를 주고받는 '규칙'을 정하는 계층
- 물리 계층과 데이터 링크 계층으로 나누기도 함
- 물리 계층 = 무선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
- 데이터 링크 계층 = '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층
유선 LAN(IEEE802.3)
전이중화 통신 (full duplex)
: 양쪽 장치가 동시에 송수신할 수 있는 방식
송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고속 이더넷은 이 방식을 기반으로 통신
CSMA/CD
이전에는 유선 LAN에 '반이중화 통신' 중 하나인 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 방식 사용
: 데이터를 '보낸 이후' 충돌이 발생하면 일정 시간 이후 재전송
=> 수신로와 송신로를 각각 둔 것이 아니고 한 경로를 기반으로 데이터를 보내기 때문에 데이터를 보낼 때 충돌에 대비해야 했기 때문
유선 LAN을 이루는 케이블
- TP 케이블이라고 하는 트위스트 페어 케이블
- 광섬유 케이블
트위스트 페어 케이블
: 하나의 케이블처럼 보이지만 실제로는 여덟개의 구리선을 두 개씩 꼬아서 묶은 케이블
- UTP 케이블: 구리선을 실드 처리하지 않고 덮은 케이블 (흔히 LAN 케이블이라고 함)
- STP 케이블: 구리선을 실드 처리하고 덮은 케이블
광섬유 케이블
: 광섬유로 만든 케이블
- 레이저를 이용해서 통신하기 때문에 장거리 및 고속 통신 가능
- 보통 100Gbps의 데이터 전송
- 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작
=> 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진
무선 LAN(IEEE802.11)
수신과 송신에 같은 채널 사용 => 반이중화 통신 사용
반이중화 통신
- 양쪽 장치는 서로 통신 가능
- 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있음
- 일반적으로 장치가 신호를 수신하기 시작하면 응답하기 전에 전송 완료될 때까지 기다려야 함
- 둘 이상의 장치가 동시에 전송하면 충돌 -> 메시지 손실/왜곡
=> 충돌 방지 시스템 필요 - ex. 무전기 (자신의 차례가 끝났음을 알려야 역할이 바뀜)
CSMA/CA
: 반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 일련의 과정을 기반으로 사전에 가능한 한 충돌을 방지하는 방식
- 사용 중인 채널이 있다면 다른 체널을 감지하다가 유후 상태인 채널 발견
- 프레임 간 공간 시간인 IFS(InterFrame Space) 시간만큼 기다린다.
IFS: 프레임의 우선순위를 정의할 때도 사용. IFS가 낮으면 우선순위가 높다. - 프레임을 보내기 전 0 ~ 2ᴷ - 1 사이에서 결정된 랜덤 상수 기반 시간만큼 기다린 뒤 프레임 보냄
• 제대로 송신 후 ACK 세그먼트를 받았다면 마침
• 받지 못했다면 k = k + 1을 하여 이 과정 반복
• 반복하다가 k가 정해진 Kmax보다 더 커지면 해당 프레임 전송은 버림
=> 반대되는 전이중화 통신은 양방향 통신이 가능하므로 충돌 가능성이 X -> 충돌 감지/방지 매커니즘이 필요하지 않다
무선 LAN을 이루는 주파수
무선 LAN: 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
- 비유도 매체인 공기에 주파수를 쏘아 무선 통신망 구축
- 보통 5GHz 대역을 사용
- 2.4GHz : 장애물에 강한 특성을 가짐, 그러나 전파 간섭이 일어나는 경우가 많음
- 5GHz : 사용 가능한 채널 수 많고 동시에 사용 가능, 상대적으로 깨끗한 전파 환경
와이파이
: 전자기기들이 무선 LAN 시놓에 연결할 수 있게 하는 기술
- 사용하려면 무선 접속 장치(AP; Access Point)가 있어야 한다. = 공유기
- 무선 접속 장치를 통해 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔줌
- 무선 LAN을 이용한 다른 기술 : 지그비, 블루투스
BSS (Basic Service Set)
: 기본 서비스 집합, 단순 공유기를 통해 네트워크에 접속 X 동일 BSS 내에 있는 AP들과 장치들이 서로 통신 가능한 구조
- 근거리 무선 통신 제공
- 하나의 AP만을 기반으로 구축이 되어 있음 -> 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 네트워크 접속 불가능
ESS (Extended Service Set)
: 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신을 제공
- BSS보다 더 많은 가용성과 이동성을 지원
- 한 장소에서 다른 장소로 이동하며 중단 없이 네트워크에 계속 연결 가능
이더넷 프레임
데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화
- Preamble: 이더넷 프레임이 시작임을 알림
- SFD(Start Frame Delimiter): 다음 바이트부터 MA 주소 필드가 시작됨을 알림
- DMAC, SMAC: 수신, 송신 MAC 주소
- EtherType: 데이터 계층 위의 계층인 IP 프로토콜을 정의 (IPv4, IPv6)
- Payload: 전달받은 데이터
- CRC: 에러 확인 비트
MAC 주소
컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데, 이를 구별하기 위한 식별번호
6바이트(48비트)로 구성
계층 간 데이터 송수신 과정
컴퓨터를 통해 다른 컴퓨터로 데이터를 요청하면 다음과 같은 일이 발생
- 애플리케이션 계층 -> 전송 계층 : 요청 값들이 캡슐화 과정을 거쳐 전달
- 링크 계층 : 해당 서버와 통신
- 링크 계층 -> 애플리케이션 : 비캡슐화 과정을 거쳐 데이터 전송
캡슐화 과정
: 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
- 애플리케이션 데이터 -> 전송 계층 : 세그먼트화 or 데이터그램화 + TCP(L4) 헤더가 붙여지게 됨
- 인터넷 계층 : IP(L3) 헤더가 붙여지며 '패킷'화
- 링크 계층 : 프레임 헤더와 프레임 트레일러가 붙어 '프레임'화
비캡슐화 과정
: 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
- 캡슐화된 데이터를 받아 비캡슐화 과정을 거침
- 링크 계층에서부터 타고 올라오며 프레임화된 데이터는 다시 패킷화
- 세그먼트, 데이터그램화를 거쳐 메시지화가 됨
- 최종적으로 애플리케이션의 PDU인 메시지로 전달
PDU (Protocol Data Unit)
: 네트워크의 어떠한 계층으로 데이터가 전달될 때의 한 덩어리 단위
- 제어 관련 정보들이 포함된 '헤더'
데이터를 의미하는 '페이로드'로 구성 - 계층마다 부르는 명칭이 다름
- 애플리케이션 계층: 메시지
- 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층: 패킷
- 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
ex. 애플리케이션 계층 : '메시지' 기반 데이터 전달 (HTTP의 헤더가 문자열인 것)
curl 명령어를 이용하여 www.naver.com으로 HTTP 요청을 보내는 PDU 테스팅
- PDU 중 아래 계층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높음
- 애플리케이션 계층에서는 문자열 기반으로 송수신 <- 헤더에 authorization 값 등 다른 값들을 넣는 확장이 쉽기 때문
'Group Study (2024-2025 Q3) > CS 전공 지식 노트' 카테고리의 다른 글
[3주차-02] IP 주소 (0) | 2025.04.30 |
---|---|
[3주차-01] 네트워크 기기 (0) | 2025.04.16 |
[2주차-03] Network Basics - Network Classification & Commands (0) | 2025.04.07 |
[2주차-02] Network Basics - Network Topology (0) | 2025.04.07 |
[2주차-01] Programming Paradigm (0) | 2025.04.07 |