Internet 최양희서울대학교컴퓨터공학부 MMlab 1
Internet Timeline 3000 BC : Abacus 1642 : Pascal : numerical wheel calculator 1822 : Babbage : difference engine 1945 : Eckert : ENIAC 1969 : first ARPANET connection UCLA, SRI, UCSB, Utah 1972 : CYCLADES (France) 1974 : V. Cerf : TCP 2008 Yanghee Choi MMlab 2
Internet Timeline 1977 : e-mail over Telenet 1980 : IBM : Bitnet 1981 : IBM : PC 1982 : Time : Computer 1984 : Domain Name System 1988 : Morris : Worm, and CERT 1989 : number of hosts exceeds 100,000 1991 : Al Gore : High Performance Computing Act 1991 : Tim Berners-Lee : WWW 1992 : Internet Society 1993 : Andreessen : Mosaic 1994 : Yahoo! 2008 Yanghee Choi MMlab 3
인터넷등장배경 미국방성의요구 : 많은통신시설이파괴되더라도계속살아남는통신네트워크를고안할것. 다양한통신기술을활용할수있을것. 과학기술계의결론 패킷 (packet) 방식의통신네트워크 연결을만들지않음 전체의 70% 이상이파괴되어도계속생존하여통신기능유지함 2008 Yanghee Choi MMlab 4
인터넷역사 1961 : Kleinrock : Packet switching 1969 : first ARPANET connection UCLA, SRI, UCSB, Utah 1983 : TCP/IP 1984 : Domain Name System 1988 : Morris : Worm, and CERT 1989 : number of hosts exceeds 100,000 1991 : Al Gore : High Performance Computing Act 1991 : Tim Berners-Lee : WWW 1993 : Andreessen : Mosaic 2008 Yanghee Choi MMlab 5
인터넷발전일정 2008 Yanghee Choi MMlab 6
Internet Configuration subnet subnet Packet Host subnet Host Packet subnet Router subnet 2008 Yanghee Choi MMlab 7
오늘의인터넷 2008 Yanghee Choi MMlab 8
Internet structure: network of networks roughly hierarchical national/international backbone providers (NBPs) e.g. BBN/GTE, Sprint, AT&T, IBM, UUNet interconnect (peer) with each other privately, or at public Network Access Point (NAPs) regional ISPs connect into NBPs local ISP, company connect into regional ISPs NAP regional ISP local ISP NBP B NBP A local ISP regional ISP 2008 Yanghee Choi MMlab 9 NAP
Protocols Protocol: rules for communication Message formats, timing Describes how a computer responds when a message arrives Specifies how a computer handles errors or other abnormal conditions All network services are described by protocols 2008 Yanghee Choi MMlab 10
What s a protocol? a human protocol and a computer network protocol: Hi Hi Got the time? 2:00 time TCP connection req. TCP connection reply. Get http://gaia.cs.umass.edu/index.htm <file> 2008 Yanghee Choi MMlab 11
Key Elements of a Protocol Syntax Data formats Signal levels Semantics Control information Error handling Timing Speed matching Sequencing 2008 Yanghee Choi MMlab 12
A Three Layer Model Network Access Layer Transport Layer Application Layer 2008 Yanghee Choi MMlab 13
Simplified File Transfer Architecture 2008 Yanghee Choi MMlab 14
Network Access Layer Exchange of data between the computer and the network Sending computer provides address of destination May invoke levels of service Dependent on type of network used (LAN, packet switched etc.) 2008 Yanghee Choi MMlab 15
Transport Layer Reliable data exchange Independent of network being used Independent of application 2008 Yanghee Choi MMlab 16
Application Layer Support for different user applications e.g. e-mail, file transfer 2008 Yanghee Choi MMlab 17
OSI Open Systems Interconnection Developed by the International Organization for Standardization (ISO) Seven layers A theoretical system delivered too late! TCP/IP is the de facto standard A layer model Each layer performs a subset of the required communication functions Each layer relies on the next lower layer to perform more primitive functions Each layer provides services to the next higher layer Changes in one layer should not require changes in other layers 2008 Yanghee Choi MMlab 18
OSI Layers 2008 Yanghee Choi MMlab 19
Internet protocol stack application: supporting network applications ftp, smtp, http transport: host-host data transfer tcp, udp network: routing of packets from source to destination ip, routing protocols link: data transfer between neighboring network elements ppp, Ethernet physical: bits on the wire application transport network link physical 2008 Yanghee Choi MMlab 20
OSI v TCP/IP 2008 Yanghee Choi MMlab 21
Some Protocols in TCP/IP Suite 2008 Yanghee Choi MMlab 22
Access Technologies Dialup via modem DSL: digital subscriber line : ADSL, VDSL Cable Modem LAN (wired, wireless : IEEE 802), WiBro (mobile WiMax) 802.16e Wireless Mesh Bluetooth Satellite Cellular (2, 2.5, 3, 4G) FTTH Sensor network 2008 Yanghee Choi MMlab 23
Data Link Layer two physically connected devices: host-router, router-router, host-host unit of data: frame Hl Ht Hn Ht Hn Ht M M M M application transport network link physical data link protocol phys. link network link physical Hl Hn Ht frame M 2008 Yanghee Choi MMlab 24
Link Layer Services Framing, link access: encapsulate datagram into frame, adding header, trailer implement channel access if shared medium, physical addresses used in frame headers to identify source, destination different from IP address Reliable delivery between two physically connected devices: 2008 Yanghee Choi MMlab 25
Link Layer Services (more) Flow Control: pacing between sender and receivers Error Detection: errors caused by signal attenuation, noise. receiver detects presence of errors: signals sender for retransmission or drops frame Error Correction: receiver identifies and corrects bit error(s) without resorting to retransmission 2008 Yanghee Choi MMlab 26
Stop and Wait The source transmits one frame The destination receives one frame and replies with an acknowledgement The source waits for ACK before sending the next frame The destination can stop the flow by not sending ACK 2008 Yanghee Choi MMlab 27
Sliding Windows Flow Control Allow multiple frames to be in transit Receiver has buffer (size = W frames) Transmitter can send up to W frames without ACK Each frame is numbered ACK includes the number of next frame expected Sequence number 2008 Yanghee Choi MMlab 28
Error Control Detection and correction of errors Lost frames Damaged frames Automatic repeat request Error detection Positive acknowledgment Retransmission after timeout Negative acknowledgement and retransmission 2008 Yanghee Choi MMlab 29
Automatic Repeat Request (ARQ) Stop and wait Go back N Selective reject (selective retransmission) 2008 Yanghee Choi MMlab 30
Addresses 2008 Yanghee Choi MMlab 31
IP datagram HEADER DATA 2008 Yanghee Choi MMlab 32
Routing Table IF ((Mask[I] & Destination_Address) = Destination [I]) 30.0.0.7 40.0.0.8 128.1.0.9 Forward to NextHop [I] Net 1 R1 Net 2 R2 Net 3 R3 Net 4 30.0.0.0 40.0.0.0 128.1.0.0 192.4.0.0 40.0.0.7 128.1.0.8 192.4.10.9 Destination Mask Next Hop 30.0.0.0 255.0.0.0 40.0.0.7 40.0.0.0 255.0.0.0 Deliver Direct 128.1.0.0 255.255.0.0 Deliver Direct 192.4.10.0 255.255.255.0 128.1.0.9 2008 Yanghee Choi MMlab 33
IP Routing Algorithm RouteDatagram(Datagram, RoutingTable) Extract destination IP address, D, from the datagram and compute the network prefix, N; if N matches any directly connected network address deliver datagram to destination D over that network (This involves resolving D to a physical address, encapsulating the datagram, and sending the frame) else if the table contains a host-specific route for D send datagram to next-hop specified in table else if the table contains a route for network N send datagram to next-hop specified in table else if the table contains a default route send datagram to the default router specified in table else declare a routing error; 2008 Yanghee Choi MMlab 34
TCP Basics Connection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service 2008 Yanghee Choi MMlab 35
Reliable Transmission Sender Network Message Receiver Send Packet 1 Receive ACK 1 Send Packet 2 Receive ACK 2 Receive Packet 1 Send ACK 1 Receive Packet 2 Send ACK 2 2008 Yanghee Choi MMlab 36
RTT Slowstart algorithm TCP Slowstart Host A Host B initialize: Cwnd = 1 for (each segment ACKed) Cwnd++ until (loss event OR Cwnd > threshold) exponential increase (per RTT) in window size (not so slow!) loss event: timeout (Tahoe TCP) and/or or three duplicate ACKs (Reno TCP) time 2008 Yanghee Choi MMlab 37
Congestion avoidance TCP Congestion Avoidance /* slowstart is over */ /* Cwnd > threshold */ Until (loss event) { every w segments ACKed: Cwnd++ } threshold = Cwnd/2 Cwnd = 1 1 perform slowstart 1: TCP Reno skips slowstart (fast recovery) after three duplicate ACKs 2008 Yanghee Choi MMlab 38