25.3.21
Protocol : A <-> B 의 Rule
: format(syntax) : Packet 의 Header , Payload 규격
: semantics : define (ex) Header 구조체의 1 == A 로 하자!
: order : Wating, sending, data를 보내면 OK를 해주는
Protocol Architecture 를 위해서는..
1. Packet의 Header에 목적지 주소
2. 상대방 : Wating state // HW / SW 준비
4. endian 등 여러가지 고려
Protocol 안에도 Tasks 가 너무많음 > Layer 분리
> 한 layer 에서 error 시 딱 그 부분만 수정 가능
<>
Service 주로 상위 계층을 도와주는 최소한의 connet
>>
TCP / IP : 5개의 Layer, by미군 ARPANET
// OSI 7-layer(by ISO) -> UNIX 의 TCP/IP
L1 : Physical Layer
: A -> B : 1bit (0,1) 전송!
Lancard : 전송장치의 Encoding -> 매체 마다 다른 Modulation -> 전송
L2 : Data Link / Network Access
: A -> B : 1frame // bit의 묶음
> LAN : ethernet, wifi
> WAN : ATM, frame relay..
L3 : Internet / Network : IPv4 , IPv6
: A-> Routers -> B :: 1 packet // E2E (end to end)
> 경로설정(Routing) 을 하고 뿌려주기 (Forwarding)
with Forwarding Table : 최단거리 계산 알고리즘
with IP protocal : Packet의 Header의 IP들이 담김
> IP 주소 -> ALL 장치가 다 사용
L4 : Transport : TCP/UDP
: A->Routers -> B :: 1segment //TCP,UDP (Port Number)
: TCP / UDP 차이?
> TCP의 Reliable
:: 데이터 전송과정중 error/loss > 해결!!
L3 <> L4의 차이점
: L4 가 좀 더 깊숙해
> L3 : host to host ( A machine -> B machine 까지만) // 개인, 서버 with IP
<> L4 : process to process ( A machine 의 kakaotalk -> B machine 의 kakaotalk 까지!)
// L3 : 머신의 IP주소 -> L4 : 카톡으로
L5 : Application
> 넷플, 인스타 : 각각의 protocal 존재
> SMTP(이메일), FTP, SSH, HTTP..
Encapsulation(캡슐화)
상위 -> 하위로 갈수록 Header를 붙여가는것
Host A 의 KakaoTalk 채팅
>(L4) Port 뚫고
>(L3) 나,상대 IP 를 타고 내려와
>(L2) LAN/WAN 전송장치 // wifi or cellular
> (L1) 패킷 정보들-> bit 변환
> 매체를 타고 Router로 이동
Router
전송측 Router) L1 ~> L3 ~> L1 : IP, 매체 정보를 받아 다시 bit로 바꿔 보냄
> Routing,Forwarding : Next hoap
> 수신측 Router) 다시 L2,L1 을 타고 내려옴 with 캡슐화
Host B
: L1 ~> L5까지 타고 올라와 각 Header들을 떼어내고
only data로 상대의 App 에서 수신완료!!
>> Router는 뿌리는 용도 속도증가를 위해 L4,L5는 거치지않음
하나의 앱은 프로토콜을 사용가능
- 웹 브라우저
- 웹사이트 접속: HTTP/HTTPS
- DNS 조회: DNS
- 스트리밍 서비스: WebRTC, RTSP
- 파일 다운로드: FTP, HTTP
- 메신저 앱 (카카오톡, WhatsApp 등)
- 채팅 메시지 전송: WebSocket, XMPP
- 음성/영상 통화: SIP, WebRTC
- 파일 공유: HTTP, FTP
같은 프로토콜을 여러 앱 공유 가능
- HTTP/HTTPS → 웹 브라우저(Chrome, Edge, Safari 등), API 통신, 모바일 앱 등
- SMTP/IMAP → 이메일 클라이언트(Outlook, Thunderbird, Gmail 등)
- SIP → 인터넷 전화(VoIP) 앱 (Skype, Zoom, Webex 등)