데이터 전송 관계
- 데이터 전송 관계
- 요청에 의한 응답 관계
- 요청자: 클라이언트(Client)
- 응답자: 서버(Server)
- 데이터 요청과 응답 내용
- 데이터 요청(ex: HTTP)
ETH | IP | TCP | HTTP
- ETH 헤더 : MAC 주소
- IP 헤더: IP 주소
- TCP 헤더: Port 주소
- HTTP: GET / HTTP/1.1
- 데이터 응답
ETH | IP | TCP | HTTP
- ETH 헤더 : MAC 주소
- IP 헤더: IP 주소
- TCP 헤더: Port 주소
- HTTP: HTTP/1.1 200 OK
전송 방식 유형
- 유니캐스트
1:1 통신
ex) 인터넷
- 멀티캐스트
1:n
ex) 멀티미디어 서비스, 실시간 스트리밍, IPTV
- 브로드캐스트
1:all
ex) ARP 요청,DHCP 요청
데이터 주소 체계
- 포트 번호(0~65535) - Layer 4
SystemPorts (0-1023)
User Ports (1024-49151)
Dynamic and/or PrivatePorts (49152-65535)
- 포트 번호 예제
- TCP
http: 80
https:443
telnet: 23
ssh:22
ftp:21
ftp-da:20
smtp: 25
pop3: 110
pop3s: 995
imaps: 993
- UDP
domain/dns: 53
bootps/dhcp: 67
bootps/dhcp: 68
tftp: 69
snmp: 161
snmp trap: 162
ntp: 123
syslog: 514
- 포트 번호 확인
C:> netstat -n
- IP 주소 - Layer 3
로컬 환경에서 리모트 환경
변경이 가능한 논리적인 주소
- MAC 주소 - Layer 2
ETH 헤더 안에 포함된 주소
48bit- 24(OUI, 예약된 주소)-24(포트,카드 구분) bits
CID(OUI,24bit)+VID(2bit)
변경이 불가능한 물리적인 주소
- MAC 주소 확인
C:> ipconfig /all
[실습] DHCP Server/Client 동작 원리
DHCP Server DHCP Cllient
- DHCP Discover (C->S) broadcast
- DHCP Offer (S->C) unicast
- DHCP Request (C->S) broadcast
- DHCP Ack (S->C) unicast
[실습] WEB Server/Client 동작 원리
http://www.test.com
- DNS query (C->S) unicast(UDP)
- DNS response (S->C) unicast(UDP)
- WEB request (C->S) unicast(TCP)
- WEB response (S->C) unicast(TCP)
[실습] FTP Server/Client 동작 원리
- DNS query (C->S) unicast(UDP)
- DNS response (S->C) unicast(UDP)
- FTP request (C->S) unicast(TCP)
- FTP response (S->C) unicast(TCP)
[실습] MAIL Server/Client 동작 원리
(요청) mail -s "from user01 to user02" user02@test.com > notice.txt
- DNS query (C->S) unicast(UDP)
- DNS response (S->C) unicast(UDP)
- MAIL send (C->S) mail queue -> user02 mailbox input
(응답) pop3 요청
- DNS query (C->S) unicast(UDP)
- DNS response (S->C) unicast(UDP)
- POP request (C->S) user02 mailbox 접근
- POP response (S->C) user02 mail 받아가기 -> (local mailbox)
[실습] NTP Server/Client 동작 원리
- NTP request (C->S) unicast(UDP)
- NTP response (S->C) unicast(UDP)
[실습] syslog Server/Client 동작 원리
- syslog request (C->S) unicast(UDP)
- syslog response (S->C) unicast(UDP)

# ping B
-> ICMP echo request(8)
------------------------
<ICMP echo request(8) header>
(ICMP)
SA A
DA B
(IP)
SA A
DA B
(ETH)
------------------------
-> ICMP echo reply(0)
---------------------------
<ICMP echo reply(0) header>
(ICMP)
SA B
DA A
(IP)
SA B
DA A
(ETH)
----------------------------
# ping G
-> ICMP echo request(8)
------------------------
<ICMP echo request(8) header>
(ICMP)
SA A
DA G
(IP)
SA A
DA C
(ETH) -> HDLC -> ETH
------------------------ 라우팅 테이블 체크 후 다시 캡슐화 후 전송
SA D
DA E
ETH -> (HDLC) -> ETH
------------------------ 라우팅 테이블 체크 후 다시 캡슐화 후 전송
SA F
DA G
ETH -> HDLC -> (ETH)
------------------------
-> ICMP echo reply(0)
---------------------------
<ICMP echo reply(0) header>
(ICMP)
SA G
DA A
(IP)
SA G
DA F
(ETH) -> HDLC -> ETH
------------------------ 라우팅 테이블 체크 후 다시 캡슐화 후 전송
SA E
DA D
ETH -> (HDLC) -> ETH
------------------------ 라우팅 테이블 체크 후 다시 캡슐화 후 전송
SA C
DA A
ETH -> HDLC -> (ETH)
------------------------