TCP/IP 4계층 모델에 대해서 알아보자
- 공유 링크 만들기
- 이메일
- 기타 앱
Reference : 면접을 위한 CS 전공지식 노트
TCP/IP 4계층 모델
인터넷에서 컴퓨터들이 서로 정보를 주고 받을 때 쓰이는 것을 OSI 7계층과 TCP/IP 4계층으로 설명 할 수 있다. 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로, TCP/IP 모델은 프로토콜의 범위에 따라 네 개의 추상화 계층으로 구성되어 있다.
1. 계층 구조
이 계층 들은 특정 계층이 변경 시, 다른 계층이 영향을 받지 않도록 설계 ⇒ 유연하게 설계되었다.
애플리케이션 계층
FTP, HTTP, SSH, SMTP, DNS 등 응용프로그램이 사용 되는 프로토콜 계층
실질적인 웹서비스, 이메일 등 사람들에게 제공되는 층
FTP
: 장치와 장치 간 파일을 전송하는데 사용되는 표준 통신 프로토콜
SSH
: 보안 되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크프로토콜
HTTP
world wide web을 위한 데이터 통신의 기초, 웹사이트를 이용하는데 필요한 프로토콜
SMTP
: 전자 메일을 전송하기 위한 인터넷 표준 통신 프로토콜
DNS
: 도메인 이름과 IP 주소를 매핑해주는 서버
전송 계층
- 대표적으로 TCP와 UDP가 있다.
- TCP → 수신여부를 확인하면서 데이터 전송
- 패킷 순서 보장
- 신뢰성
- 가상회선 패킷 교환방식(수신여부 확인 O)
- UDP → 단순히 데이터만 줌
- 패킷 순서 보장 x
- 비신뢰성
- 데이터그램 패킷 교환 방식(수신여부 확인 x)
- TCP → 수신여부를 확인하면서 데이터 전송
- 송신자-수신자 연결하는 통신 서비스를 제공
- 애플리케이션 ↔ 전송계층 ↔인터넷계층 : 데이터 전달 중계 역할
가상회선 패킷 교환 방식
가상회선 식별자가 포함되고, 모든 패킷을 전송하고 전송된 순서대로 도착하는 방식
데이터그램 패킷 교환 방식
패킷이 독립적으로 이동해서 최적의 경로를 선택하여 전송한다. ⇒ 도착한 순서가 다를 수 있다.
TCP 연결 성립 과정
📌 ISN : Initial Sequence Number의 약어, 초기 네트워크 연결 시 할당된 32비트 고유 시퀀스 번호,새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호 (장치마다 다를 수 있다.)
TCP는 신뢰성 확보를 위해 3-way handshake 작업을 진행한다.
- SYN 단계 : 클라이언트는 서버에 ISN을 담아 보낸다
- SYN + ACK 단계 : 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내 승인번호를 클라이언트의 ISN + 1을 보낸다
- ACK 단계 : 클라이언트는 서버의 ISN + 1 한 값인 승인번호를 담아 ACK를 서버로 보낸다
TCP는 3-way handshake 과정이 있기 때문에 신뢰성이 있는 계층이라고 불리며, UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 불린다.
📌 SYN SYNchronization의 약자, 연결 요청 플래그
📌 ACK ACKnowledgement의 약자, 응답 플래그
TCP 연결 해제 과정
📌 — TIME_WAIT 소켓이 바로 소멸 하지 않고, 일정 시간 유지되는 상태 CentOS, 우분투는 60초로 설정 되어 있고, 윈도우는 4분으로 설정되어 있다. → OS 마다 다르다
TCP가 연결 해제 할 때 4-way-handshake 발생
- Client가 연결 닫을려고 할 때 FIN으로 설정된 세그먼트 보낸다. Client는 FIN_WAIT_1 상태로 들어가고 Response를 기다린다
- Server는 Client로 ACK라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태로 들어가고, Client가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
- Server는 ACK를 보내고 일정 시간 이후 Client는 FIN이라는 세그먼트를 보낸다
- Client는 TIME_WAIT 상태가 되고, 다시 Server로 ACK를 보내서 Server는 CLOSED 상태가 된다. 이후 Client는 어느정도 시간 대기 후 연결이 닫히고, Server-Client 간 모든 자원 연결이 해제 된다.
⇒ TIME_WAIT 을 하는 이유 :
-
지연 패킷을 대비 : 패킷이 늦게 도착하면 데이터 무결성의 문제가 발생 (늦게 온 일부 데이터만 처리 하는 상황이 생길 수 있다)
*** 데이터 무결성 : 데이터의 정확성과 일관성을 유지하고 보증하는 것**
-
연결이 닫혔는지 확인
인터넷 계층
⇒ 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위한 계층
- 종류 : IP, ARP, ICMP 등
- 목적 : 패킷의 대상의 주소로 데이터 전달
- 비연결형 특징 ⇒ 상대가 재대로 받았는지 보장하지 않는다
링크 계층
**링크계층(네트워크 접근 계층)**은 실질적으로 데이터를 전달(전선, 광섬유, 무선 등)하고, 장치간 신호 주고받는 규칙을 정하는 계층
물리 계층 + 데이터링크 계층으로 나눈다
물리 계층 : 무선LAN, 유선LAN을 통한 0과 1로 데이터를 보내는 계층
데이터링크 계층 : ‘이더넷 프레임’ 을 통해 에러확인, 흐름제어, 접근제어 를 담당
유선 LAN(IEEE802.3)
유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따르고 전이중화 통신을 쓴다
-
전이중화 통신
전이중화(full duplex) 통신은 양쪽 장치가 동시 송수신 방식 현대의 고속 이더넷은 이 기반으로 통신
-
CSMA/CD
이전 유선 LAN의 방식, 반이중화 통신 중 하나
데이터를 보내고, 충돌 발생 시 일정 시간 지나고 재전송 하는 방식
한 경로 기반이므로 데이터 보낼 때 충돌을 대비해야 했다.
무선 LAN(IEEE802.11)
무선 LAN 장치는 수신과 송신에 같은 채널을 사용하기 때문에 반이중화 통신을 사용해야한다.
-
반이중화 통신
반이중화 통신(half duplex) 양쪽 서로 통신 가능, 동시 통신 불가 ⇒ 1번 1통신
둘 이상 장치가 동시 전송 시, 메시지손실 및 왜곡 발생 할 수 있어 충돌 대비 필요
-
CSMA/CA
반이중화 통신 중 하나
데이터 보내기 전 일련의 과정을 기반으로 사전에 가능한 충돌을 방지하는 방식
-
-
무선랜을 이루는 주파수
무선 LAN은 무선 신호 전달 방식을 이용해 2대 이상의 장치를 연결 하는 기술
- 주파수 대역 2.4GHz : 장애물에 강한특성 but 전자레인지, 무선 등 전파 간섭이 발생
- 주파수 대역 5GHz : 채널 수 가 많고, 상대적 깨끗한 전파 환경 ⇒ 보통 5GHz 사용 하는 것이 좋다
와이파이
- 무선 LAN 신호에 연결할 수 있게 하는 기술
- 무선 접속 장치(AP, Access Point) 필요 → 공유기
- 유선 LAN 신호 ⇒ 무선 LAN 신호 변환
- 무선 랜을 이용한 다른 기술 : 블루투스, 지그비
BSS
- BSS(Basic Service Set) : 기본 서비스 집합
- 동일 BSS내 AP들과 장치들이 서로 통신이 가능 한 구조
- 하나의 AP만을 기반, 사용자가 다른곳으로 이동하며 네트워크에 접속이 불가능
ESS
- ESS(Extended Service Set) 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신 제공
- BSS 보다 많은 가용성과 이동성 지원
- 사용자가 다른 장소로 이동하며 네트워크 접속 가능
이더넷 프레임
데이터 링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러 검출과 캡슐화를 한다
📌 — MAC 주소 컴퓨터나 노트북 등 장치에 네트워크 연결 장치(LAN 카드)가 있다. 이를 구별하기 위한 식별번호를 말한다. 6 byte (= 48bit)로 구성
- Preamble : 이더넷 프레임이 시작임을 알림
- SFD(Start Frame Delimiter) : 다음 바이트부터 MAC 주소 필드가 시작됨을 알림
- DMAC, SMAC : 수신, 송신 MAC 주소
- EtherType : 데이터 계층 위의 계층인 IP 프로토콜을 정의 (ex, IPv4, IPv6)
- Payload : 전달 받은 데이터
- CRC : 에러 확인 비트
계층 간 데이터 송수신 과정
캡슐화 과정
상위 계층 ⇒ 하위계층 : 상위의 데이터와 각 계층의 헤더를 해당 계층 마다 삽입하는 과정
- 애플리케이션 계층 ⇒ 전송 계층 : “세그먼트” 또는 “데이터 그램화”, TCP(L4) 헤더가 붙는다
- 전송 계층 ⇒ 인터넷 계층 : “패킷화” , IP(L3) 헤더가 붙는다
- 인터넷 계층 ⇒ 링크 계층 : “프레임화”, 프레임헤더와 프레임 트레일러가 붙는다
비캡슐화 과정
하위계층 ⇒ 상위계층 : 각 계층의 헤더를 제거 하는 과정
- 링크 계층 ⇒ 인터넷 계층 : “프레임화”, 프레임헤더와 프레임 트레일러 제거
- 인터넷 계층 ⇒ 전송 계층 : “패킷화” , IP(L3) 헤더 제거
- 전송 계층 ⇒ 애플리케이션 계층 : “세그먼트” 또는 “데이터 그램화”, TCP(L4) 헤더제거
PDU
네트워크의 어떠한 계층에서 계층으로 데이터가 전달 될 때 한 덩어리의 단위를 PDU(Protocol Data Unit)
- 애플리케이션 계층 : 메시지
- 전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층 : 패킷
- 링크 계층 : 프레임(데이터링크 계층), 비트(물리계층)