계층 구조
* TCP/IP 4계층은 DOD(미국 국방성)실용성과 효율성을 위해 OSI 7계층의 복잡성을 단순화한 구조로 설계
TCP/IP 4계층
계층 | 역할데이터 | 단위프로토콜 | 예시 |
응용 계층 | 사용자와 네트워크 간의 상호작용 | 메시지 | HTTP, FTP, DNS, SMTP |
전송 계층 | 신뢰성 있는 데이터 전송 | 세그먼트 | TCP, UDP |
인터넷 계층 | 데이터 주소 지정 및 경로 설정 | 패킷 | IP, ICMP, ARP |
네트워크 계층 | 물리적 데이터 전송 관리 | 프레임/비트 | Ethernet, Wi-Fi, PPP |
- 응용 계층 (Application Layer)
- 역할: 사용자와 네트워크 간의 상호작용을 담당. 데이터 표현, 사용자 인터페이스, 네트워크 서비스 요청 처리.
- 프로토콜 예: HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS.
- 예시: 웹 브라우저가 HTTP를 사용해 서버에서 웹 페이지를 요청하고 표시.
- 전송 계층 (Transport Layer)
- 역할: 데이터 전송 관리, 신뢰성 있는 데이터 전달, 흐름 제어, 오류 제어. 데이터를 세그먼트 단위로 분할/재조립.
- 프로토콜:
- TCP: 연결 기반, 신뢰성 보장, 데이터 순서 유지, 오류 검출.
- UDP: 비연결형, 속도 중시, 신뢰성 보장하지 않음.
- 예시:
- TCP: 이메일 송수신, 파일 다운로드.
- UDP: 동영상 스트리밍, VoIP.
- 인터넷 계층 (Internet Layer)
- 역할: 데이터 패킷의 주소 지정 및 경로 설정, 서로 다른 네트워크 간 데이터 전달.
- 프로토콜: IP, ICMP, ARP.
- 예시: 데이터가 목적지까지 전달되기 위해 라우터를 거쳐가는 경로 설정.
- 네트워크 인터페이스 계층 (Network Interface Layer)
- 역할: 물리적 네트워크를 통해 데이터 전송, 하드웨어와의 상호작용 처리.
- 프로토콜: Ethernet, Wi-Fi, PPP, DSL.
- 예시: 데이터가 실제 네트워크 케이블이나 Wi-Fi를 통해 전송
애플리케이션 계층
FTP : 장치와 장치간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜 (자세히)
SSH : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜 (자세히)
HTTP : www를 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜 (자세히)
SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜 (자세히)
DNS : 도메인 이름과 IP 주소를 매핑해주는 서버 (자세히)
전송 계층
TCP 연결 성립 과정 (3-Way Handshake)
- 1단계: SYN (Synchronize)
- 클라이언트 → 서버: 클라이언트가 연결 요청 메시지인 SYN 플래그가 설정된 패킷을 서버로 전송합니다.
- 패킷 정보: SYN=1, SEQ=x
- 2단계: SYN-ACK (Synchronize-Acknowledgment)
- 서버 → 클라이언트: 서버가 클라이언트의 요청을 수락하고, SYN과 ACK 플래그가 설정된 패킷을 전송합니다.
- 패킷 정보: SYN=1, ACK=1, SEQ=y, ACK=x+1
- 3단계: ACK (Acknowledgment)
- 클라이언트 → 서버: 클라이언트가 서버의 응답을 확인하고, ACK 플래그가 설정된 패킷을 전송합니다.
- 패킷 정보: ACK=1, SEQ=x+1, ACK=y+1
SYN | 연결 요청 플래그, 초기 통신 시작 알림 |
ACK | 수신 확인 플래그, 성공적 데이터 수신 알림 |
SEQ | 순서 번호, 데이터 패킷의 순서 및 시작 위치 식별 |
ISN | 초기 네트워크 연결 시, 할당된 32bits 고유 스퀀스 번호. 각 연결 시작 시 임의로 설정 |
TCP와 UDP의 차이점
구분 | TCP | UDP |
연결 방식 | 연결 지향(Connection-oriented) | 비연결형(Connectionless) |
전송 신뢰성 | 데이터의 신뢰성을 보장 (패킷 손실 시 재전송) | 신뢰성을 보장하지 않음 (패킷 손실 발생 가능) |
속도 | 느림 (연결 설정 및 확인 과정 필요) | 빠름 (연결 설정 없이 데이터 전송) |
오버헤드 | 상대적으로 큼 (헤더가 더 크고 프로세스가 복잡) | 상대적으로 작음 |
데이터 순서 | 데이터 순서를 보장 | 순서를 보장하지 않음 |
사용 사례 | 파일 전송(FTP), 이메일(SMTP), 웹브라우징(HTTP/HTTPS) 등 | 스트리밍(동영상, 오디오), VoIP, 게임 등 실시간 서비스 |
흐름 제어 | 흐름 제어 및 혼잡 제어 기능 지원 | 흐름 제어 및 혼잡 제어 기능 없음 |
TCP의 가상회선 패킷 교환 방식
TCP는 가상회선 패킷 교환 방식(Virtual Circuit Packet Switching)을 사용하여 데이터를 신뢰성 있게 전송합니다. 이는 물리적인 회선을 연결하지는 않지만, 논리적인 연결을 설정하여 데이터를 순서대로 전송하는 방식을 의미합니다.
1. 주요 특징
- 연결 지향적: 통신 전에 송신자와 수신자 간에 논리적 연결을 설정합니다.
- 패킷의 순서 보장: 데이터를 작은 패킷으로 나누어 전송하며, 수신 측에서 시퀀스 번호를 통해 패킷을 올바른 순서로 재조합합니다.
- 신뢰성 보장: 패킷이 손실되거나 오류가 발생한 경우, 재전송 메커니즘을 통해 데이터 전송의 신뢰성을 확보합니다.
- 혼잡 제어 및 흐름 제어: 네트워크 상태에 따라 데이터 전송 속도를 조정하여 네트워크 혼잡을 방지합니다.
2. 작동 과정
- 연결 설정 (3-way Handshake)
- 송신자와 수신자가 통신을 시작하기 전에 논리적 연결을 설정합니다.
- 송신자는 SYN 메시지를 보내 연결 요청 → 수신자는 SYN-ACK 메시지로 응답 → 송신자는 ACK로 응답하여 연결이 완료됩니다.
- 데이터 전송
- 데이터를 패킷 단위로 나누어 전송하며, 각 패킷은 시퀀스 번호를 가집니다.
- 수신 측은 ACK(확인 응답) 메시지를 통해 데이터를 제대로 받았음을 알립니다.
- 손실된 패킷은 재전송됩니다.
- 연결 종료 (4-way Handshake)
- 데이터를 모두 전송한 후, 송신자와 수신자는 FIN과 ACK 메시지를 교환하여 논리적 연결을 종료합니다.
TCP 가상회선 방식의 장점
- 데이터 전송의 신뢰성과 정확성을 보장.
- 패킷이 올바른 순서로 도착하도록 관리.
- 혼잡 제어와 흐름 제어를 통해 네트워크 효율성 증가.
TCP 가상회선 방식의 단점
- 연결 설정 및 종료(Handshake)로 인해 오버헤드 발생.
- 속도가 느림(연결 설정과 확인 과정 포함).
- 실시간 애플리케이션에는 부적합.
UDP의 데이터그램 패킷 교환 방식
UDP는 데이터그램 패킷 교환 방식(Datagram Packet Switching)을 사용합니다. 이는 비연결형 통신으로, 데이터를 독립적인 패킷 단위로 전송하며, 각 패킷은 서로 독립적으로 처리됩니다.
1. 주요 특징
- 비연결형: 송신자와 수신자 간 연결 설정 과정 없이 데이터를 전송합니다.
- 순서 비보장: 각 패킷은 독립적으로 전송되며, 도착 순서가 보장되지 않습니다.
- 신뢰성 미보장: 패킷 손실, 중복, 순서 오류 등에 대해 보장하지 않습니다.
- 오버헤드가 작음: 간단한 프로토콜로 빠른 데이터 전송이 가능하며, 네트워크 자원을 적게 사용합니다.
2. 작동 과정
- 패킷 전송
- 데이터를 데이터그램 단위로 나누어 전송합니다.
- 각 데이터그램에는 수신지 주소와 포트 정보가 포함됩니다.
- 데이터그램은 독립적으로 네트워크를 통해 전송됩니다.
- 패킷 처리
- 수신 측은 패킷을 수신하지만, 데이터가 손실되거나 순서가 뒤섞이는 경우 자체적으로 복구하지 않습니다.
- 신뢰성과 복구는 애플리케이션 레벨에서 관리해야 합니다.
UDP 데이터그램 방식의 장점
- 빠른 전송 속도: 연결 설정 및 상태 확인 과정이 없으므로 실시간 전송에 적합.
- 오버헤드가 적음: 간단한 구조로 네트워크 자원을 적게 사용.
- 실시간 애플리케이션에 적합: VoIP, 스트리밍, 온라인 게임 등.
UDP 데이터그램 방식의 단점
- 데이터의 신뢰성 보장 불가: 손실된 패킷은 재전송되지 않음.
- 순서 보장 없음: 데이터그램이 도착하는 순서가 뒤섞일 수 있음.
TCP 연결 종료 과정 요약
- 클라이언트의 FIN 전송
- 클라이언트가 연결 종료를 요청하며 FIN 세그먼트를 전송.
- 상태: FIN_WAIT_1
- 서버의 ACK 응답
- 서버가 FIN에 대한 승인(ACK)을 보내고 CLOSE_WAIT 상태로 전환.
- 클라이언트는 ACK를 받으면 상태가 FIN_WAIT_2로 전환.
- 서버의 FIN 전송
- 서버가 일정 시간이 지난 후 클라이언트에 FIN 세그먼트를 전송.
- 클라이언트의 ACK 응답 및 종료
- 클라이언트는 서버의 FIN에 대한 ACK를 보내고 TIME_WAIT 상태로 전환.
- 서버는 ACK를 받은 뒤 CLOSED 상태로 전환.
- 클라이언트는 대기 시간을 거친 후 자원 해제 및 연결 종료.
TIME_WAIT 상태의 필요성
- 지연된 패킷 처리
- 이전 연결에서 전송된 패킷이 뒤늦게 도착할 경우를 대비하여 데이터 충돌 방지.
- 연결 상태 확인
- 두 장치가 연결이 완전히 종료되었음을 확실히 하기 위함.
- 오류 없이 새로운 연결을 설정할 수 있도록 보장.
TIME_WAIT은 데이터 무결성과 연결 안정성을 보장하기 위해 필수적인 과정입니다.
인터넷 계층
- 역할
- 서로 다른 네트워크 간의 통신을 가능하게 하고 연결성을 제공.
- 네트워크 상에서 데이터 전송을 담당.
- IP 주소
- 단말을 구분하기 위해 논리적 주소(IP 주소)를 할당.
- IP 주소를 통해 네트워크 상의 컴퓨터를 식별하고 주소를 지정.
- 라우터와 라우팅
- 라우터: 네트워크 간 데이터를 연결하고 전송하는 기기.
- 라우팅: 라우터에 의해 네트워크 간 데이터가 전송되는 과정.
- 라우터는 내부의 라우팅 테이블을 이용해 경로 정보를 등록하고 최적의 경로를 탐색.
- End-to-End 통신
- 출발지와 목적지 간 데이터 전송 과정을 의미.
- 최적의 경로를 통해 데이터가 전송됨.
링크 계층
유선 LAN
- 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따름.
- 전이중화 통신
- 예전에는 반이중화 통신을 썼다.
- 8개의 구리선을 2개씩 꼬아서 만든 케이블 사용(트위스트 페어 케이블 : 커넥터는 RJ-45)
*실드 처리를 하면 UTP 케이블(일반적인 LAN 케이블), 실드가 없으면 STP
전이중화(Full duplex) 통신이란?
양쪽 장치가 동시에 송수신할 수 있는 방식(동시, 양방향 통신)
반이중화(half duplex) 통신이란?
양쪽 장치는 서로 통신할 수 있으나, 동시에는 할 수 없는 방식 (단일, 양방향 통신)
수신 송신이 채널이 나눠져 있지 않아, 동시에 통신이 안된다.
무선 LAN은 반이중화 통신을 사용한다.
무선 LAN
- 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
- 지그비, 블루투스, 와이파이 등
- 무선 접속 장치(AP)가 있어야 함 -> 흔히 공유기라고 함.
'SW > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
2.5 HTTP (0) | 2025.01.07 |
---|---|
2.4 IP주소 (0) | 2025.01.07 |
2.3 네트워크 기기 (0) | 2025.01.07 |
2.1 네트워크 기초 (0) | 2024.12.31 |
면접을 위한 cs 전공지식 노트 요약본 (2) | 2024.12.31 |