380 likes | 777 Views
1 장 컴퓨터 네트워크와 인터넷. “실제” 인터넷 지연과 경로 (1). “ 실제” 인터넷 지연과 손실은 어떤가 ? Traceroute program: 근원지에서 목적지까지의 인터넷 경로상에 있는 라우터까지의 지연 측정을 제공한다 . 모든 i 에 대하여 : 목적지까지의 경로상에 있는 라우터 i 로 세개의 패킷을 송신 . 라우터 i 는 송신자에게 패킷을 되돌려보낸다 . 송신과 수신간의 간격 (round trip time) 을 측정. 3 probes. 3 probes. 3 probes.
E N D
1 장컴퓨터 네트워크와인터넷 Introduction
“실제” 인터넷 지연과 경로(1) • “실제” 인터넷지연과 손실은 어떤가? • Traceroute program:근원지에서 목적지까지의 인터넷 경로상에 있는 라우터까지의 지연 측정을 제공한다. 모든 i에 대하여: • 목적지까지의 경로상에 있는 라우터 i 로 세개의 패킷을 송신. • 라우터 i는 송신자에게 패킷을 되돌려보낸다. • 송신과 수신간의 간격(round trip time)을 측정. 3 probes 3 probes 3 probes Introduction
“실제” 인터넷 지연과 경로(2) traceroute: gaia.cs.umass.edu to www.eurecom.fr Three delay measements from gaia.cs.umass.edu to cs-gw.cs.umass.edu 1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms 2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms 3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms 4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms 5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms 6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms 7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms 8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms 9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms 10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms 11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms 12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms 13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms 14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms 15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms 16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms 17 * * * 18 * * * 19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136ms trans-oceanic link * means no reponse (probe lost, router not replying) Introduction
1장: 순서 1.1 인터넷이란? 1.2네트워크의 가장자리 1.3코어 네트워크 1.4 접속네트워크와 물리매체 1.5 ISP와 인터넷 백본 1.6패킷교환망에서의 지연과 손실 1.7프로토콜 계층과 서비스 모델 1.8컴퓨터 네트워킹과 인터넷의 역사 Introduction
네트워크란 복잡한 거야! 많은 “요소들”: 호스트 라우터 여러 종류의 매체의 링크 응용 프로그램 프로토콜 하드웨어, 소프트웨어 질문: 이러한 네트워크의 구조를 조직적으로 할 방법은 없을까? 아니면, 최소한 설명이라도? 1.7.1 계층 구조 Introduction
계층화의 이유? 복잡한 시스템을 다룸: • 명시적인 구조는 복잡한 시스템의 부문들의 식별과 관계설정을 가능 • 계층화된참조모델 • 모듈화는 시스템의 유지와 보완을 용이 • 계층의 서비스의 구현 변경은 시스템의 다른 부분에 투명 • 예. 탑승절차의 변경은 다른 항공시스템에 영향을 주지 않음 • 계층화가 득인가 실인가? Introduction
OSI- 참조모델 • OSI(Open Systems Interconnection) • 계층모델 • 각 계층은 요구되는 통신기능의 일부를 수행 • 각 계층은 요구되는 서비스 제공을 위하여 바로 아래 계층의 서비스에 의존 • 각 계층은 바로 위 상위계층에 서비스 제공 • 한 계층에서의 변경은 다른 계층의 변경에 독립적 Introduction
OSI 환경 Introduction
OSI 프레임워크 Introduction
다양한 계층의 protocol 합 응용:네트워크 응용 프로그램 지원 FTP, SMTP, STTP 트랜스포트:호스트간 데이터 전송 TCP, UDP 네트워크:근원지에서 목적지까지 데이타그램의 경로설정 IP, 라우팅 프로토콜 링크:이웃 네트워크 요소간의 데이터 전송 PPP, Ethernet 물리: “선”상의 비트 응용 트랜스포트 네트워크 링크 물리 인터넷 프로토콜 스택 Introduction
1.7.2 계층, 메시지, 세그먼트, 데이터그램, 프레임 • 단위 • 어플리케이션 계층 - 메시지 • 트랜스포트 계층 - 세그먼트 • 네트워크 계층 - 데이터그램 • 링크계층 - 프레임 Introduction
네트워크 링크 물리 링크 물리 M M Ht Ht M M Hn Hn Hn Hn Ht Ht Ht Ht M M M M Hl Hl Hl Hl Hl Hl Hn Hn Hn Hn Hn Hn Ht Ht Ht Ht Ht Ht M M M M M M 근원지 캡슐화 메시지 응용 트랜스포트 네트워크 링크 물리 세그먼트 데이타그램 프레임 스위치 destination 응용 트랜스포트 네트워크 링크 물리 라우터 Introduction
1장: 순서 1.1 인터넷이란? 1.2네트워크의 가장자리 1.3코어 네트워크 1.4 접속네트워크와 물리매체 1.5 ISP와 인터넷 백본 1.6패킷교환망에서의 지연과 손실 1.7프로토콜 계층과 서비스 모델 1.8컴퓨터 네트워킹과 인터넷의 역사 Introduction
1961: Kleinrock – 패킷교환의 효율성을 보여줌 1964: Baran – 군용망에 패킷교환 1967: Advanced Research Projects Agency에 의해 ARPAnet 태동 1969:최초 ARPAnet 노드 동작 1972: ARPAnet 공공 시범 NCP (Network Control Protocol) 최초 호스트간 프로토콜 최초 e-mail 프로그램 ARPAnet 15 노드 동작 1.8 인터넷 역사(1) 1961-1972: 초기 패킷 교환 원리 Introduction
1970:하와이에서 ALOHAnet 위성 네트워크 1973: Metcalfe가 박사논문으로 이더넷 제안 1974: Cerf and Kahn – 네트워크간 인터네트워킹 구조 late70’s:독점 네트워크: DECnet, SNA, XNA late 70’s:고정 길이의 패킷 교환 (ATM 전신) 1979: ARPAnet 이 200 노드 보유 Cerf and Kahn’s 인터네트워킹 원리: 최소, 자율 – 네트워크 연동에 내부 변경 없음 최대전송 노력 서비스 모델l 무상태 라우터 분산제어 오늘날의 인터넷 구조를 정의 1.8 인터넷 역사(2) 1972-1980: 인터네트워킹, 새로운 독점 네트워크 Introduction
1990 초: ARPAnet 임무 종료 1991: NSF NSFnet의 상업적 사용의 제한철회 ( 1995 임무종료) 1990년대 초:웹 하어퍼텍스트 [Bush 1945, Nelson 1960’s] HTML, HTTP: Berners-Lee 1994: Mosaic, 훗날 Netscape 1990대 말: 웹의 상업화 1990년대 말 – 2000년: 더많은 킬러 응용: instant messaging, P2P file sharing 전방위 네트워크 보안 약 5천만 호스트, 1억이상의 사용자 Gbps로 동작하는 백본 링크들 1.8 인터넷 역사(3) 1990, 2000’s: 상업화, 웹, 새로운 응용들 Introduction
2 장애플리케이션(응용) 계층 Introduction
2.1 애플리케이션 계층 프로토콜의 원리 2.2 웹과 HTTP 2.3 파일전송; FTP 2.4 인터넷 전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷 디렉터리 서비스 2.6 P2P 파일공유 2.7 TCP 소켓 프로그래밍 2.8 UDP 소켓 프로그래밍 2.9 간단한 웹 서버 구축하기 2장: 애플리케이션 계층 Introduction
“네트워크 응용은 컴퓨터 네트워크의 존재의 이유” 목표: 네트워크 애플리케이션의 개념과 구현 측면을 공부 응용 계층 프로토콜 트랜스포트 계층 서비스 모델 클라이언트-서버 피어-피어 프로세스 잘 알려지 응용계층 프로토콜을 고찰 HTTP FTP SMTP / POP3 DNS 네트워크 응용 프로그래밍 소켓 API 2장: 애플리케이션 계층 Introduction
2.1 애플리케이션 계층 프로토콜의 원리 2.2 웹과 HTTP 2.3 파일전송; FTP 2.4 인터넷 전자메일 SMTP, POP3, IMAP 2.5 DNS- 인터넷 디렉터리 서비스 2.6 P2P 파일공유 2.7 TCP 소켓 프로그래밍 2.8 UDP 소켓 프로그래밍 2.9 간단한 웹 서버 구축하기 2장: 애플리케이션 계층 Introduction
네트워크 애플리케이션은 다른 종단 시스템에서 동작 전자메일 웹 인스턴트 메시징 원격 로그인 P2P 파일공유 여러 사용자 네트워크 게임 스티리밍 저장된 비데오 클립 인터넷 전화 실시간 화상회의 인기있는 네트워크 응용 Introduction
프로그램 작성은 상이한 종단 시스템에서 동작 네트워크상에서 통신 예., 웹: 웹 서버 소프트웨어는 브라우저 소프트웨어와 통신 코어 네트워크 장비를 위한 프로그램이 아님 코어 네트워크 장비는 응용계층에서 동작 하는 것이 아님 application transport network data link physical application transport network data link physical application transport network data link physical 네트워크 응용 개발 Introduction
2.1.1 네트워크 애플리케이션 구조 “애플리케이션(응용) 계층 프로토콜은 네트워크 애플리케이션(응용)의 한 요소” • 클라이언트-서버 • 피어-to-피어 (P2P) • 클라이언트-서버와 P2P의 혼합 Introduction
클라이언트-서버 구조 서버: • 항상 켜있음 • 고정 IP 주소 • 서버끼리는 통신 않음 • 확장성을 위해 서버 집단(farm) 클라이언트: • 서버와 통신 • 일시적으로 연결 • 동적 IP주소 • 클라이언트끼리 통신 않음 Introduction
순수 P2P 구조 • 항상 켜놓은 서버 없음 • 임의 종단 시스템간 통신 • 피어들은 임시적으로 연결되고 IP주소도 변경도 됨 • 예: 그누텔라(Gnutella) • 파일위치를 찾기위하여 질의하며 질의에 응답하고 질의를 전달 확장성 -각자가 서버기능 그러나 관리에 어려움 Introduction
클라이언트-서버와 P2P의 혼합 넵스터(Napster) • 파일전송 P2P • 중앙집권된 파일 검색: • 피어들은 중앙 서버에 내용물들을 등록 • 피어들은 내용물들의 위치를 중앙 서버에 질의 인스턴트 메시징 • 두 사용자간의 대화는 P2P • 존재 검색/위치확인은 중앙집권화: • 사용자들은 접속시 중앙 서버에 자신의 IP 등록 • 사용자는 대화상대의 IP주소를 찾기 위하여 중앙서버에 접속 Introduction
프로세스:호스트에서 돌아가는 프로그램. 같은 호스트 안에서는, 두 프로세스들은 OS에서 정의된 inter-process communication를 이용해 통신. 다른 호스트간의 프로세스는 메시지교환을 통해 통신 클라이언트 프로세스:통신을 야기하는 프로세스 서버 프로세스:접속되기를 기다리는 프로세스 2.1.2 프로세스간 통신 • 주: P2P 구조를 갖는 응용들도 클라이언트 프로세스와 서버 프로세스를 갖는다. Introduction
호스트 또는 서버 호스트 또는 서버 프로세스 프로세스 소켓 소켓 버퍼, 변수 등의 TCP 버퍼, 변수 등의 TCP 소켓 • 프로세스는 자신의 소켓을 통해 메시지를 보내고 받는다. • 소켓을 문에 비유 • 송신 프로세스는 메시지를 문 밖으로 밀어 낸다. • 이 송신 프로세스는 수신 프로세스의 문으로 메시지를 보내기 위해 문 뒤편의 트랜스포트 구조에 의존한다. 응용 개발자에 의해 제어 Internet OS에 의해 제어 • API: (1) 트랜스포트 프로토콜 선택; (2) 매개변수의 설정(최대버퍼, 최대 세그먼트 크기 등) Introduction
한 프로세스가 메시지를 수신하기 위하여, 식별자를 가져야 한다. 호스트가 접속된 IP 주소 그 호스트상의 프로세스를 나타내는 포트번호(port numbers) 포트번호의 예: HTTP 서버: 80 메일 서버: 25 후에 자세히 배운다. 프로세스 주소체계 Introduction
메시지를 보내는 방법 정의 프로토콜은 다음의 내용을 정의 교환되는 메시지 타입, 예, 요구 와 응답 메시지 메시지 타입 문법: 메시지에 무슨 필드가 있고 필드간 구별 필드의 의미, 즉, 필드 정보의 뜻 언제 어떻게 프로세스가 메시지를 전송하고 메시지에 응답을 하는지 결정 다양한 application layer protocol은 RFC에 명시 Ex) HTTP(Hyper Text Transfer Protocol) : RFC2616 www.ietf.org 2.1.3 응용계층 프로토콜 Introduction
애플리케이션의 서비스 요구 사항 신뢰적인 데이터전송 일부 응용들은 (예. 오디오) 약간의 손실을 허용한다. 다른 응용들은 (예. 파일전송, 텔넷) 100% 신뢰적인 데이터 전송을 요구한다. 밴드폭 일부 응용들은 (예., 멀티미디어) “유효”하기 위하여 최소한의 일정 밴드폭을 요구한다. 다른 응용들은 (“유동성있는”) 주어진 밴드폭을 사용한다. 시간(timing) 일부 응용들은 (예., 인터넷 전화, 대화식 게임) “유효”하기 위하여 적은 지연이 요구된다. 2.1.4 응용은 어떤 서비스를 필요로 하는가? Introduction
일반 응용들의 전송 서비스 요구사항 시간민감도 없음 없음 없음 있음, 100’s msec 있음, 수 초 있음, 100’s msec 있음/없음 응용 파일전송 전자우편 웹문서 실시간 오디오/비데오 저장 오디오/비데오 대화식 게임 인스탄트 메시징 데이타손실 손실불허 손실불허 손실불허 손실허용 손실허용 손실허용 손실불허 밴드폭 신축적 신축적 신축적 오디오: 5kbps-1Mbps 비데오:10kbps-5Mbps 상동 수 kbps 정도 신축적 Introduction
TCP 서비스: 연결형:클라이언트 서버 프로세스간 연결설정 요구 신뢰적인 전송: 송수신 프로세스간 흐름제어:송신자는 수신자에게 과하지 않게 함 혼잡제어:네트워크가 과부하시 송신자를 억제 제공하지 않는것:시간과최소 밴드폭 보장 UDP 서비스: 송수신 프로세스간 신뢰적이지 않은 데이타전송 제공하지 않는것: 연결설정, 신뢰성, 흐름제어, 혼잡제어, 시간 및 밴드폭 보장 질문:그럼에도 왜 UDP를 사용하는가? 2.1.5 인터넷 트랜스포트 프로토콜이 제공하는 서비스 Introduction
인터넷 응용, 응용계층 프로토콜, 하위 전송프로토콜 응용계층 프로토콜 SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] 독점 (예. RealNetworks) 독점 (예, 다이알패드) 하위 전송 프로토콜 TCP TCP TCP TCP TCP 또는 UDP 전형적으로 UDP 응용 전자메일 원격터이날접속 웹 파일전송 스트리밍멀티미디어 이너텟전화 Introduction