프로토콜 : 컴퓨터 간 통신을 하기 위한 규칙
osi 7 layer
: 다양한 컴퓨터 간 데이터 전송을 지원할 수 있는 추상 모델을 표준화한 것
헤더 : 필요한 정보를 데이터에 추가
바디 : 실제 데이터
캡슐화(송신측) 역캡슐화(수신측)
헤더 까봤어? : 헤더 분석해봤니?
osi 7 layer
- 물리 계층
: 데이터를 전기 신호로 변환하여 송수신
- 데이터링크 계층
: 물리적 네트워크 사이의 데이터 송수신 담당
: 대표적인 프로토콜: 이더넷 프로토콜
- mac 주소 : 유일함
- 네트워크 계층
: 다양하고 방대한 네트워크 상에서, 컴퓨터간 논리적 연결을 위해 네트워크 계층이 필요
대표적인 프로토콜 : ip 프로토콜 (ipv4, ipv6)
- 전송계층
: 목적지에 신뢰할 수 있는 데이터 전달 담당
데이터 전송 중 손상/유실 확인을 위한 오류 점검 기능(체크섬)
: 목적지의 어떤 응용프로그램에 데이터를 전달해야 하는지 식별하는 기능(포트)
대표적인 프로토콜 : tcp, udp 프로토콜
tcp : 연결형 프로토콜, 데이터의 전송 순서 보장, 데이터 신뢰성 보장
udp: 비연결형 프로토콜, tcp보다 전송속도 빠름, 주로 스트리밍/브로드캐스팅 서비스
udp 데이터는 데이터그램이라고 부름
포트번호 : 목적지의 어떤 응용프로그램에 데이터를 전달해야하는지를 식별 가능
0-65555 사이
- 세션 계층
: 세션 또는 대화 연결, 관리 담당
예: ftp로 여러 파일을 각각 다운로드 받을 때 각 다운로드 연결/관리 처리
**표현 계층** : 암호화 담당
**응용 계층** : 네트워크 응용 프로그램을 위한 인터페이스 제공 대표적인 프로토콜: HTTP
아(APP) 파(P) 서(SE) 탈(TR) 났(NW) 다(DATA) 픽(PHY)
tcp/ip모델
:인터넷 통신을 위한 모델
osi 7 layer는 표준 모델, 현실에서 인터넷을 위해 사용하는 모델은 tcp/ip 모델
tcp/ip 모델의 응용 계층은 osi 모델의 세션+표현+응용 계층 통합
567층 : 응용계층 : http, ftp, dns, pop3, smtp
4층 : 전송 계층 : tcp, udp
3층 : 인터넷 계층 : ipv4, ipv6
12층 : 네트워크 접속 계층 : ethernet
ip:
32비스로 구성 0.0.0.0~255.255.255.255
비트: 8bit 8bit 8bit 8bit
ipv4
ipv6 : 2^128
tcp 프로토콜
: 알고리즘이 들어가 있음
3-way 핸드쉐이크
: 패킷에 코드 비트(싱크)를 1로 넣어서 데이터에 보냄
- TCP 3 Way Handshake
: TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
간략하게 연결을 설정하는 과정
- TCP 4 WAY handshake
간락하게 연결을 종료하는 과정
tcp 프로토콜
패킷 분석 프로그램 : wireshark
TCP 제어 : 네트워크 트래픽에 따른 효율적/신뢰적 송신을 위한 제어 알고리즘 적용
- 흐름제어: sliding window
: 매번 ACK를 기다리지 않고 각 컴퓨터의 윈도우 사이즈 확인 후
윈도우 사이즈만큼 ACK 없이 연속해서 송신
- 혼잡제어
송신 제어를 위한 윈도우는 2개
RWND: 흐름제어(sliding window)에서 활용
CWND: 네트워크 혼잡 제어를 위해 활용
송신측 최종 윈도우 크기= MIN(RWND, CWND)
AIMD(Additive increase/multicative decrease) : 너무 느림
처음에는 CWND = 1
ack가 도착하면 -> CWND = CWND+1
- 느린 시작(SLOW START)
처음에는 CWND = 1
ACK가 도착하면 -> CWND = CWND*2
ACK가 일정 시간 동안 도착하지 않으면 패킷 전동 실패 - CWND = 1
- 혼잡 회피(CONGESTION AVOIDANCE)
CWND가 일정 크기에 도달하면
AIMD처럼 동작
MSS = MTU - (IP헤더길이) - (TCP헤더길이)
MTU: 한번 전송 때 보낼 수 있는 최대 단위