효습
2.2 TCP/IP 4계층 모델 본문
인터넷 프로토콜 스위트 (internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고 받는 데 쓰이는 프로토콜의 집합을 의미함
2.2.1 계층 구조
TCP/IP 계층은 4개의 계층을 가지고 있으며 , OSI 7계층과 많이 비교됨
이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향 받지 않도록 설계되었다
애플리케이션 계층(application)
- FTP , HTTP , SSH , SMTP , DNS등 응용 프로그램이 사용되는 프로토콜 계층
- 웹 서비스 , 이메일 등 서비스를 실질적으로 사람들에게 제공
- FTP : 장치와 장치 간의 파일을 전송하는 데 사용되는 표중 통신 프로토콜
- SSH : 보안되지 않은 네트워킄에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP : WWW를 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰이는 프로토콜
- SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS : 도메인 이름과 IP 주소를 매핑해주는 서버
전송 계층(transport)
- 송신자와 수신자를 연결하는 통신 서비스를 제공
- 연결 지향 데이터 스트림 지원 , 신뢰성 , 흐름 제어 제공
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 함
- 대표적으로 TCP , UDP
- TCP
- 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 신뢰성을 구축
- 수신 여부 확인 가능
- 가상회선 패킷 교환 방식
- UDP
- 순서를 보장하지 않고
- 수신 여부 확인 하지 않음
- 단순히 데이터만 주는 데이터그램 패킷 교환 방식 사용
가상회선 패킷 교환 방식
- 각 패킷에는 가상회선 식별자가 포함되면 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식
데이터그램 패킷 교환 방식
- 패킷이 독립적으로 이동하며 최적의 경로를 선택함
- 하나의 메세지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있는 방식을 뜻함
TCP 연결 성립 과정
3-웨이 핸드쉐이크(3-way handshake)
라는 작업을 진행 , UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 함
- SYN 단계
- 클라이언트는 서버에 클라이언트의 ISN(Initial Sequence Numbers , 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호)을 담아 SYN을 보냄
- SYN+ACK 단계
- 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN+1을 보낸다
- ACK 단계
- 클라이언트는 서버의 ISN +1한 값인 승인번호를 담아 ACK를 서버에 보냄
TCP 연결 해제 과정
4-way handshake
과정 발생
- 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보냄 → 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다림
- 서버는 클라이언트로 ACK라는 승인 세그먼트를 보냄 → 그리고 CLOSE_WAIT 상태로 들어감 → 클라이언트는 세그먼트를 받으면 FIN_WAIT_2 상태에 들어감
- 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냄
- 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 됨 → 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원 연결이 해지됨
왜 서버는 바로 연결을 닫는 게 아니라 일정 시간 뒤에 닫을까?
- 지연 패킷이 발생할 경우를 대비하기 위해서
- 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생
- 두 장치가 연결이 닫혔는지 확인하기 위해서
- 만약 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 할 때 장치는 줄곧 LASY_ACK로 되어 있기 때문에 접속 오류가 나타남
이러한 이유로 TIME_WAIT라는 잠시 기다릴 시간이 필요
인터넷 계층
- 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- IP , ARP , ICMP 등이 있으며 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달한다
- 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형적인 특징이 있음
링크 계층
- 전선 , 광섬유 , 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
- 네트워크 접근 계층이라고도 함
- 물리 계층과 데이터 링크 계층으로 나누기도 함
- 물리 계층은 무선 LAN과 유선 LAN을 통해 0과1로 이루어진 데이터를 보내는 계층을 뜻함
- 데이터 링크 계층은
이더넷 프레임
을 통해 에러 확인 , 흐름 제어 , 접근 제어를 담당하는 계층을 뜻함
유선 LAN(IEEE802.3) :
유선 LAN을 이루는 이더넷은 IEEE802.3이라는 프로토콜을 따르며 전이중화 통신을 쓴다
전이중화(full duplex) 통신
- 양쪽 장치가 동시에 송수신할 수 있는 방식
- 송신로와 수신로로 나눠서 데이터를 주고 받으며
- 현대의 고속 이더넷은 이 방식을 기반으로 통신한다
CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
- 이전에 쓰던 반이중화 통신 방법
- 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식
- 수신로와 송신로를 각각 둔 게 아니라 한 경로를 기반으로 데이터를 보내기 때문에 데이터의 충돌을 대비해야 했음
유선 LAN을 이루는 케이블
TP 케이블이라고 하는 트위스트 페어 케이블과 광섬유 케이블이 대표적
트워스트 페어 케이블(twisted pair cable)
- 하나의 케이블처럼 보이지만 실제로는 여덟 개의 구리선을 두 개씩 꼬아서 묶는 케이블
- 여러 개의 구리선으로 이루어져 있음
- 케이블은 구리선을 실드 처리하지 않고 덮은 UTP 케이블과
- 우리가 자주 볼 수 있는 케이블 , LAN 케이블일고 함
- 실드 처리하고 덮은 STP로 나눠짐
광섬유 케이블
- 광섬유로 만든 케이블
- 레이저를 이용해서 통신하기 때문에 구리선과는 비교할 수 없는 만큼의 장거리 및 고속 통신이 가능
- 보통 100Gbps의 데이터를 전송하며 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작해서 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진하여 반대편 끝까지 가는 원리를 이용
- 빛의 굴절률이 높은 부분은 core , 낮은 부분을 cladding이라고 함
무선 LAN(IEEE802.11)
수신과 송신에 같은 채널을 사용 , 반이중화 통신을 사용한다
반이중화 통신(half duplex)
- 양쪽 장치는 서로 통신할 수 있지만 , 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식
- 일반적으로 장치가 신호를 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함
CSMA/CA
- 반이중화 통신 중 하나로 자치에서 데이터를 보내기 전에 일련의 과정을 기반으로 사전에 가능한 한 충돌을 방지하는 방식
무선 LAN을 이루는 주파수
- 무선 LAN(WLAN , Wireless Local Area Network)은 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
- 비유도 매체인 공기에 주파수를 쏘아 무선 통신망을 구축한다
- 주파수 대역은 2.4GHz 대역 또는 5GHz 대역 중 하나를 써서 구축한다
- 2.4GHz는 장애물에 강한 특성을 가지고 있지만 전자레인지, 무선 등 전파 간섭이 일어나는 경우가 많고
- 5GHz 대역은 사용할 수 있는 채널 수도 많고 동시에 사용할 수 있기 때문에
- 상대적으로 깨끗한 전파 환경을 구축할 수 있습니다. 그렇기 때문에 보통은 5GHz 대역을 사용하는 것이 좋다
와이파이
- 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술
- 무선 접촉 장치(AP , Access Point)가 필요함 ← 공유기
- 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔주어 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 함
- 이를 사용한 기술로는 블루투스도 있다
BSS(Basic Set Service)
- 기본 서비스 집합
- 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조를 뜻함
- 근거리 무선 통신을 제공하고
- 하나의 AP만을 기반으로 구축되어 있어 사용자가 한 곳에서 다른 곳으로 이동하면 사용 불가능
ESS(Extended Service Set)
- 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신을 제공하며 BSS보다 더 많은 가용성과 이동성을 지원
이더넷 프레임
데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화하며 다음과 같은 구조를 가진다
- Preamble : 이더넷 프레임이 시작임을 알린다
- SFD(Start Frame Delimiter) : 다음 바이트로부터 MAC 주소 필드가 시작됨을 알린다
- DMAC , SMAC : 수신 , 송신 MAC 주소를 말한다
- EtherType : 데이터 계층 위의 계층인 IP 프로토콜을 정의 , 예를 들어 IPv4 또는 IPv6
- Payload : 전달받은 데이터
- CRC : 에러 확인 비트
MAC 주소
- 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데, 이를 구별하기 위한 식별번호 , 6바이트 (48비트)로 구성됨
계층 간 데이터 송수신 과정
캡슐화 과정
- 캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정을 말한다
- 애플리케이션 계층의 데이터가 전송 계층으로 전달되면서 세그먼트 또는 데이터그램화되면 TCP(L4) 헤더가 붙여지게 됨
- 인터넷 계층으로 가면서 IP(L3) 헤더가 붙여지게 되며 패킷화가 되고
- 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 프레임화가 된다
비캡슐화 과정
- 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
- 캡슐화된 데이터를 받게 되면 링크 계층으로부터 올라오면서 프레임화된 데이터는 다시 패킷화를 거쳐 세그먼트 , 데이터그램화를 거쳐 메세지화가 되는 비캡슐화 과정이 일어난다
- 최종적으로 사용자에게 애플리케이션의 PDU인 메세지로 전달된다
2.2.2 PDU
- 다른 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU(Protocol Data Unit)라고 한다
- PDU는 제어 관련 정보들이 포함된 헤더 , 데이터를 의미하는 페이로드로 구성되어 있으며 계층마다 부르는 명칭이 다른다
- 애플리케이션 계층 : 메세지
- 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층: 패킷
- 링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)
- PDU 중 아래 계층인 비트로 송수신하는 것이 가장 빠르고 효율성이 높음
- 애플리케이션 계층에서는 문자열을 기반으로 송수신 → 헤더에 authorization 값 등 다른 값들을 넣는 확장이 쉽기 때문
'CS' 카테고리의 다른 글
3.4 CPU 스케쥴링 알고리즘 (1) | 2024.09.26 |
---|---|
2.3 네트워크 기기 (0) | 2024.09.04 |
2.1 네트워크 기초 (0) | 2024.08.27 |
1-2. 프로그래밍 패러다임 (0) | 2024.08.27 |
1.1 디자인 패턴 (1) | 2024.08.20 |