컴퓨터 네트워크: 두 판 사이의 차이
| (같은 사용자의 중간 판 9개는 보이지 않습니다) | |||
| 26번째 줄: | 26번째 줄: | ||
===[[Transport Layer]]=== | ===[[Transport Layer]]=== | ||
자세한 내용은 [[Transport Layer]] 문서를 참조하십시오. | 자세한 내용은 [[Transport Layer]] 문서를 참조하십시오. | ||
===[[Network Layer]]=== | |||
자세한 내용은 [[Network Layer]] 문서를 참조하십시오. | |||
===[[Data Link Layer]]=== | |||
자세한 내용은 [[Data Link Layer]] 문서를 참조하십시오. | |||
==A Day in the Life of a Web Page Request== | |||
해당 문단의 목적은 웹 페이지 하나의 접근하는 데에 얼마나 많은 프로토콜이 사용되는지 알아보고, 프로토콜 스택을 따라가면서 네트워크의 거시적인 작동과정을 살펴보는 것이다. | |||
===Getting Started: DHCP, UDP, IP, and Ethernet=== | |||
준영이 노트북을 켜도 [[Switched Local Area Networks#Ethernet|이더넷]] 케이블을 통해 학교의 [[Link-Layer Switches|이더넷 스위치]]에 연결한다고 가정하자. 이 스위치는 학교의 라우터에 연결되어 있으며, 학교의 라우터는 [[Internet#ISP|ISP]]<ref>해당 예시에서는 ahnnet.net이다.</ref>에 연결되어 있다. 해당 예시에서는 ahnnet이 학교의 [[DNS]] 서비스를 제공하므로, DNS 서버는 학교 네트워크가 아니라 ahnnet 네트워크 내에 위치한다. 또한 DHCP 서버는 일반적인 경우처럼 라우터 내부에서 실행되고 있다고 가정한다. | |||
준영의 노트북이 네트워크에 연결되었을 때, IP 주소 없이는 어떤 일도 할 수 없다. 따라서 준영의 노트북이 네트워크와 관련하여 처음 수행하는 작업은, | |||
[[IPv4 Addressing#DHCP|DHCP]] 프로토콜을 실행하여 IP 주소 및 기타 정보들을 DHCP 서버로부터 얻는 것이다. 이를 위해 다음과 같은 일이 일어난다. | |||
# 준영의 노트북 OS가 DHCP 리퀘스트 메시지를 새성하고, 이를 [[UDP]] 세그먼트에 담는다. | |||
#* 목적지 포트는 67(DHCP 서버), 출발지 포트는 68(DHCP 클라이언트)를 사용한다. | |||
#* IP 목적지 주소는 <code>255.255.255.255</code>(브로드캐스트), IP 출발지 주소: <code>0.0.0.0</code>(아직 주소가 없으므로)를 사용한다. | |||
# 이 IP 데이터그램은 이더넷 프레임에 담긴다. | |||
#* [[Switched Local Area Networks#MAC Addresses|MAC]] 목적지 주소는 <code>FF:FF:FF:FF:FF:FF</code>(브로드캐스트)이고, MAC 출발지 주소는 준영의 노트북의 MAC 주소이다. | |||
# 준영의 노트북이 전송한 이더넷 프레임은 스위치로 전달되고, 스위치는 모든 출력 포트(라우터 포함)에 브로드캐스트한다. | |||
# 라우터는 이더넷 프레임을 수신하고, IP 데이터그램을 추출한 후 상위 계층으로 전달한다. IP 목적지가 브로드캐스트 주소이므로, 라우터는 이를 내부 DHCP 서버로 전달한다. | |||
# 라우터 내부의 DHCP 서버는 예를 들어, <code>68.85.2.0/24</code> 주소 범위를 사용할 수 있다고 하자. | |||
#* DHCP 서버는 준영에게 IP 주소를 할당하고, DNS 서버 주소, 기본 게이트웨이 주소, 서브넷 마스크 등을 포함한 DHCP ACK 메시지를 생성한다. | |||
# 이 DHCP ACK 메시지는 UDP 세그먼트/IP 데이터그램/이더넷 프레임으로 캡슐화되며, | |||
#* 출발지 MAC 주소는 라우터 인터페이스의 그것, 목적지 MAC 주소는 준영의 MAC 주소로 설정된다. | |||
# 스위치는 [[Link-Layer Switches#Self-Learning|self-learning을 통해]] 준영의 MAC 주소가 어느 포트에 있는지 알고 있으므로, 해당 포트로만 프레임을 전달한다. | |||
# 준영의 노트북은 DHCP ACK 메시지를 수신하고, 자신의 IP 주소, DNS 서버 주소, 기본 게이트웨이 주소를 저장한다. | |||
이로써 준영의 노트북은 네트워크 초기화를 완료하고, 웹 페이지를 요청하기 위한 준비를 완료했다. | |||
===Still Getting Started: DNS and ARP=== | |||
준영이 브라우저에 www.google.com을 입력하면, Google 홈페이지를 띄우기 위한 긴 여정이 시작된다. 먼저 TCP 소켓을 생성하기 위해서는 www.google.com의 IP 주소를 알아야 하며, 이를 위해서 [[DNS]] 프로토콜을 사용한다. | |||
# 운영체제는 DNS 쿼리 메시지("www.google.com" 포함)를 생성한다. | |||
#* 이를 UDP 세크먼트(목적지 포트 번호는 53)에 담고 IP 데이터그램(목적지 IP는 DNS 서버의 그것)에 캡슐화한다. | |||
#* 이 데이터그램을 이더넷 프레임에 담아 게이트웨이 라우터로 전송해야 하는데, 라우터의 MAC 주소는 아직 모르므로 [[Switched Local Area Networks#Address Resolution Protocol(ARP)|ARP 프로토콜]]을 사용한다. | |||
# 준영의 노트북은 IP 주소가 게이트웨이 라우터의 그것이고, 목적지 MAC 주소를 <code>FF:FF:FF:FF:FF:FF</code>로 설정한 ARP 쿼리 메시지를 발송한다. | |||
# 게이트웨이 라우터는 해당 IP가 자기 것임을 인식하고, 자신의 MAC 주소를 담은 ARP 응답 메시지를 전송한다. | |||
#* 준영의 노트북은 이 응답을 수신하여 MAC 주소를 저장하고, DNS 쿼리를 라우터의 MAC 주소로 전송할 수 있는 상태가 된다. | |||
===Still Getting Started: Intra-Domain Routing to the DNS Server=== | |||
# 라우터는 프레임에서 IP 데이터그램을 추출하고, 목적지 IP 주소를 확인하여 ahnnet 네트워크로 전달한다. | |||
# Comcast의 라우터들은 자신의 포워딩 테이블([[OSPF|Intra-AS Routing]], [[BGP]] 기반)을 사용해 DNS 서버 방향으로 전달한다. | |||
# 최종적으로 DNS 서버는 요청을 받고, "www.google.com"를 그에 대한 IP 주소로 변환하여 응답 메시지를 UDP 세그먼트, IP 데이터그램, 프레임 순으로 캡슐화해 준영의 노트북으로 되돌려 보낸다. | |||
# 준영의 노트북은 응답을 수신하고 Google의 IP 주소를 획득한다. | |||
===Web Client-Server Interaction: TCP and HTTP=== | |||
# 준영의 노트북은 비로소 [[TCP]] 소켓을 만들고, [[HTTP|HTTP GET]] 메시지를 보낼 준비를 한다. | |||
#* 먼저 3-way 핸드셰이크가 수행된다. 이를 위해 [[TCP#Connection Management#TCP: 3-Way Handshaking|SYN 세그먼트]]를 IP 데이터그램/이더넷 프레임으로 캡슐화한 후 게이트웨이 MAC으로 전송한다. | |||
# 이 데이터그램은 학교 네트워크, Comcast, Google 네트워크를 거쳐 www.google.com에 도달한다. | |||
# www.google.com은 TCP SYN을 수신하고 연결 소켓을 만들고, SYNACK을 준영의 노트북으로 전송한다. | |||
# SYNACK은 다시 네트워크를 통해 준영에게 도달하고, TCP 소켓이 연결 상태로 전환된다. | |||
# 이제 HTTP GET 메시지를 생성하여 TCP 세그먼트/IP/프레임으로 캡슐화하여 www.google.com으로 전송한다. | |||
# www.google.com은 리퀘스트를 받고, HTTP 응답 메시지를 생성하며 HTML 페이지 내용을 응답 본문에 담는다. | |||
# 응답 메시지는 경유 네트워크를 통해 준영에게 전달되고, 준영의 브라우저는 HTML을 추출하여 웹 페이지를 렌더링 및 표시한다. | |||
==[[Wireless and Mobile Networks]]== | |||
자세한 내용은 [[Wireless and Mobile Networks]] 문서를 참조하십시오. | |||
==[[Multimedia Networking]]== | |||
자세한 내용은 [[Multimedia Networking]] 문서를 참조하십시오. | |||
==[[Network Programming]]== | |||
자세한 내용은 [[Network Programming]] 문서를 참조하십시오. | |||
==각주== | ==각주== | ||
2025년 6월 15일 (일) 03:37 기준 최신판
상위 문서: 컴퓨터 공학
Category:컴퓨터 네트워크
개요
Computer Network와 Internet
Internet
자세한 내용은 Internet 문서를 참조하십시오.
network edge
자세한 내용은 network edge 문서를 참조하십시오.
network core
자세한 내용은 network core 문서를 참조하십시오.
performance measures in networks
자세한 내용은 performance measures in networks 문서를 참조하십시오.
Protocol Layers and Their Service Models
자세한 내용은 Protocol Layers and Their Service Models 문서를 참조하십시오.
Application Layer
자세한 내용은 Application Layer 문서를 참조하십시오.
Transport Layer
자세한 내용은 Transport Layer 문서를 참조하십시오.
Network Layer
자세한 내용은 Network Layer 문서를 참조하십시오.
Data Link Layer
자세한 내용은 Data Link Layer 문서를 참조하십시오.
A Day in the Life of a Web Page Request
해당 문단의 목적은 웹 페이지 하나의 접근하는 데에 얼마나 많은 프로토콜이 사용되는지 알아보고, 프로토콜 스택을 따라가면서 네트워크의 거시적인 작동과정을 살펴보는 것이다.
Getting Started: DHCP, UDP, IP, and Ethernet
준영이 노트북을 켜도 이더넷 케이블을 통해 학교의 이더넷 스위치에 연결한다고 가정하자. 이 스위치는 학교의 라우터에 연결되어 있으며, 학교의 라우터는 ISP[1]에 연결되어 있다. 해당 예시에서는 ahnnet이 학교의 DNS 서비스를 제공하므로, DNS 서버는 학교 네트워크가 아니라 ahnnet 네트워크 내에 위치한다. 또한 DHCP 서버는 일반적인 경우처럼 라우터 내부에서 실행되고 있다고 가정한다.
준영의 노트북이 네트워크에 연결되었을 때, IP 주소 없이는 어떤 일도 할 수 없다. 따라서 준영의 노트북이 네트워크와 관련하여 처음 수행하는 작업은, DHCP 프로토콜을 실행하여 IP 주소 및 기타 정보들을 DHCP 서버로부터 얻는 것이다. 이를 위해 다음과 같은 일이 일어난다.
- 준영의 노트북 OS가 DHCP 리퀘스트 메시지를 새성하고, 이를 UDP 세그먼트에 담는다.
- 목적지 포트는 67(DHCP 서버), 출발지 포트는 68(DHCP 클라이언트)를 사용한다.
- IP 목적지 주소는
255.255.255.255(브로드캐스트), IP 출발지 주소:0.0.0.0(아직 주소가 없으므로)를 사용한다.
- 이 IP 데이터그램은 이더넷 프레임에 담긴다.
- MAC 목적지 주소는
FF:FF:FF:FF:FF:FF(브로드캐스트)이고, MAC 출발지 주소는 준영의 노트북의 MAC 주소이다.
- MAC 목적지 주소는
- 준영의 노트북이 전송한 이더넷 프레임은 스위치로 전달되고, 스위치는 모든 출력 포트(라우터 포함)에 브로드캐스트한다.
- 라우터는 이더넷 프레임을 수신하고, IP 데이터그램을 추출한 후 상위 계층으로 전달한다. IP 목적지가 브로드캐스트 주소이므로, 라우터는 이를 내부 DHCP 서버로 전달한다.
- 라우터 내부의 DHCP 서버는 예를 들어,
68.85.2.0/24주소 범위를 사용할 수 있다고 하자.- DHCP 서버는 준영에게 IP 주소를 할당하고, DNS 서버 주소, 기본 게이트웨이 주소, 서브넷 마스크 등을 포함한 DHCP ACK 메시지를 생성한다.
- 이 DHCP ACK 메시지는 UDP 세그먼트/IP 데이터그램/이더넷 프레임으로 캡슐화되며,
- 출발지 MAC 주소는 라우터 인터페이스의 그것, 목적지 MAC 주소는 준영의 MAC 주소로 설정된다.
- 스위치는 self-learning을 통해 준영의 MAC 주소가 어느 포트에 있는지 알고 있으므로, 해당 포트로만 프레임을 전달한다.
- 준영의 노트북은 DHCP ACK 메시지를 수신하고, 자신의 IP 주소, DNS 서버 주소, 기본 게이트웨이 주소를 저장한다.
이로써 준영의 노트북은 네트워크 초기화를 완료하고, 웹 페이지를 요청하기 위한 준비를 완료했다.
Still Getting Started: DNS and ARP
준영이 브라우저에 www.google.com을 입력하면, Google 홈페이지를 띄우기 위한 긴 여정이 시작된다. 먼저 TCP 소켓을 생성하기 위해서는 www.google.com의 IP 주소를 알아야 하며, 이를 위해서 DNS 프로토콜을 사용한다.
- 운영체제는 DNS 쿼리 메시지("www.google.com" 포함)를 생성한다.
- 이를 UDP 세크먼트(목적지 포트 번호는 53)에 담고 IP 데이터그램(목적지 IP는 DNS 서버의 그것)에 캡슐화한다.
- 이 데이터그램을 이더넷 프레임에 담아 게이트웨이 라우터로 전송해야 하는데, 라우터의 MAC 주소는 아직 모르므로 ARP 프로토콜을 사용한다.
- 준영의 노트북은 IP 주소가 게이트웨이 라우터의 그것이고, 목적지 MAC 주소를
FF:FF:FF:FF:FF:FF로 설정한 ARP 쿼리 메시지를 발송한다. - 게이트웨이 라우터는 해당 IP가 자기 것임을 인식하고, 자신의 MAC 주소를 담은 ARP 응답 메시지를 전송한다.
- 준영의 노트북은 이 응답을 수신하여 MAC 주소를 저장하고, DNS 쿼리를 라우터의 MAC 주소로 전송할 수 있는 상태가 된다.
Still Getting Started: Intra-Domain Routing to the DNS Server
- 라우터는 프레임에서 IP 데이터그램을 추출하고, 목적지 IP 주소를 확인하여 ahnnet 네트워크로 전달한다.
- Comcast의 라우터들은 자신의 포워딩 테이블(Intra-AS Routing, BGP 기반)을 사용해 DNS 서버 방향으로 전달한다.
- 최종적으로 DNS 서버는 요청을 받고, "www.google.com"를 그에 대한 IP 주소로 변환하여 응답 메시지를 UDP 세그먼트, IP 데이터그램, 프레임 순으로 캡슐화해 준영의 노트북으로 되돌려 보낸다.
- 준영의 노트북은 응답을 수신하고 Google의 IP 주소를 획득한다.
Web Client-Server Interaction: TCP and HTTP
- 준영의 노트북은 비로소 TCP 소켓을 만들고, HTTP GET 메시지를 보낼 준비를 한다.
- 먼저 3-way 핸드셰이크가 수행된다. 이를 위해 SYN 세그먼트를 IP 데이터그램/이더넷 프레임으로 캡슐화한 후 게이트웨이 MAC으로 전송한다.
- 이 데이터그램은 학교 네트워크, Comcast, Google 네트워크를 거쳐 www.google.com에 도달한다.
- www.google.com은 TCP SYN을 수신하고 연결 소켓을 만들고, SYNACK을 준영의 노트북으로 전송한다.
- SYNACK은 다시 네트워크를 통해 준영에게 도달하고, TCP 소켓이 연결 상태로 전환된다.
- 이제 HTTP GET 메시지를 생성하여 TCP 세그먼트/IP/프레임으로 캡슐화하여 www.google.com으로 전송한다.
- www.google.com은 리퀘스트를 받고, HTTP 응답 메시지를 생성하며 HTML 페이지 내용을 응답 본문에 담는다.
- 응답 메시지는 경유 네트워크를 통해 준영에게 전달되고, 준영의 브라우저는 HTML을 추출하여 웹 페이지를 렌더링 및 표시한다.
Wireless and Mobile Networks
자세한 내용은 Wireless and Mobile Networks 문서를 참조하십시오.
Multimedia Networking
자세한 내용은 Multimedia Networking 문서를 참조하십시오.
Network Programming
자세한 내용은 Network Programming 문서를 참조하십시오.
각주
- ↑ 해당 예시에서는 ahnnet.net이다.