ì ¡ Computer ¡Systems ¡and ¡Networks ¡ ECPE ¡170 ¡– ¡Jeff ¡Shafer ¡– ¡University ¡of ¡the ¡Pacific ¡ Networking ¡ Fundamentals ¡
2 ¡ Lab ¡Schedule ¡ AcEviEes ¡ Assignments ¡Due ¡ ì Today ¡ ì Lab ¡11 ¡ Network ¡Programming ¡ Due ¡by ¡Dec ¡1 st ¡5:00am ¡ ì ì Python ¡ ì ì Lab ¡12 ¡ ì Next ¡Week ¡ Due ¡by ¡Dec ¡8 th ¡5:00am ¡ ì Lab ¡12 ¡– ¡Network ¡ ì ì Final ¡Exam ¡ Programming ¡ Tue ¡Dec ¡9 th ¡8-‑10am ¡ ì Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
3 ¡ Persons ¡of ¡the ¡Day: ¡Vint ¡Cerf ¡/ ¡Bob ¡Kahn ¡ ì Co-‑designers ¡of ¡TCP/IP ¡ protocol ¡suite ¡ Enables ¡reliable ¡ ì communicaEon ¡across ¡ unreliable ¡network ¡ FoundaKon ¡of ¡Internet ¡ ì ì 2004 ¡ ACM ¡Turing ¡Award ¡ winners ¡(shared) ¡ ì 2005 ¡ Presiden1al ¡Medal ¡of ¡ Freedom ¡winners ¡(shared) ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
4 ¡ Person ¡of ¡the ¡Day: ¡Tim ¡Berners-‑Lee ¡ ì Inventor ¡of ¡“World ¡Wide ¡ Web” ¡ First ¡implementaEon ¡of ¡ ì HTTP ¡ (HyperText ¡Transfer ¡ Protocol) ¡to ¡communicate ¡ between ¡client ¡and ¡server ¡ ì Knighted ¡by ¡Queen ¡Elizabeth ¡ II ¡in ¡2004 ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
5 ¡ ì ¡ Computer ¡Networks ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
6 ¡ Disclaimer ¡ ì These ¡topics ¡take ¡an ¡enKre ¡semester ¡of ¡COMP ¡177 ¡ (Computer ¡Networking) ¡to ¡explore! ¡ ì A ¡few ¡days ¡ (most ¡of ¡which ¡is ¡lab ¡1me) ¡is ¡only ¡ sufficient ¡for ¡the ¡briefest ¡of ¡overviews… ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
7 ¡ Network ¡Model ¡ Application ¡Layer ¡ (Myriad ¡examples: ¡Web ¡browser, ¡web ¡server, ¡etc…) ¡ Transport ¡Layer ¡ (Reliability ¡– ¡e.g. ¡TCP) ¡ Network ¡Layer ¡ (Global ¡Network ¡– ¡e.g. ¡IP) ¡ Link ¡Layer ¡ (Local ¡Area ¡Network ¡– ¡e.g. ¡Ethernet) ¡ Physical ¡Layer ¡ ¡ (“Bit ¡on ¡a ¡Wire”) ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
8 ¡ Application ¡Layer ¡ Application ¡Layer ¡ HTTP ¡ DNS ¡ IMAP ¡ Skype ¡ BitTorrent ¡ RDP ¡ NTP ¡ NFS ¡ SSH ¡ Sockets ¡ … ¡and ¡many ¡more! ¡ Transport ¡Layer ¡ Network ¡Layer ¡ Link ¡Layer ¡ Physical ¡Layer ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
9 ¡ Application ¡Layer ¡ ì The ¡ applicaKon ¡layer ¡programmer ¡can ¡make ¡many ¡ (fantasEc) ¡assumpEons ¡about ¡the ¡network ¡ The ¡network ¡is ¡reliable ¡ ì ì Messages ¡are ¡not ¡lost ¡ ì Messages ¡are ¡received ¡in ¡the ¡order ¡they ¡are ¡sent ¡ The ¡network ¡can ¡transfer ¡data ¡of ¡infinite ¡length ¡ ì (you ¡can ¡send ¡as ¡much ¡data ¡as ¡desired) ¡ You ¡can ¡deliver ¡messages ¡directly ¡to ¡a ¡specific ¡applicaEon ¡ ì on ¡a ¡specific ¡computer ¡anywhere ¡on ¡the ¡planet ¡ ì The ¡lower ¡layers ¡(transport, ¡network, ¡link, ¡…) ¡do ¡all ¡the ¡ heavy-‑li`ing ¡to ¡make ¡these ¡assumpEons ¡true ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
10 ¡ Client-‑Server ¡Architecture ¡ Server ¡ Client ¡ Communicate ¡with ¡server ¡ ì Always-‑on ¡host ¡ ì May ¡be ¡intermicently ¡ ì ì Always ¡has ¡a ¡known ¡IP ¡ connected ¡ address ¡ May ¡have ¡dynamic ¡IP ¡addresses ¡ ì ì Lots ¡of ¡bandwidth ¡ Do ¡not ¡communicate ¡directly ¡ ì ì Server ¡process : ¡process ¡that ¡ with ¡each ¡other ¡ waits ¡to ¡be ¡contacted ¡ Client ¡process : ¡process ¡that ¡ ì iniEates ¡communicaEon ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
11 ¡ Why ¡Do ¡We ¡Have ¡Sockets? ¡ ì Challenge ¡– ¡ Inter-‑process ¡communicaKon ¡ ì A ¡ process ¡ is ¡an ¡independent ¡program ¡running ¡on ¡a ¡ host ¡ ì Separate ¡memory ¡space ¡ ì How ¡do ¡processes ¡communicate ¡with ¡other ¡ processes ¡ ì On ¡the ¡same ¡host? ¡ ì On ¡different ¡hosts? ¡ ì Send ¡ messages ¡between ¡each ¡other ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
12 ¡ What ¡is ¡a ¡Socket? ¡ ì An ¡interface ¡between ¡process ¡(applicaEon) ¡and ¡ network ¡ ì The ¡applicaEon ¡creates ¡a ¡socket ¡ ì The ¡socket ¡ type ¡ dictates ¡the ¡style ¡of ¡communicaEon ¡ ì Reliable ¡vs. ¡best ¡effort ¡ ì ConnecEon-‑oriented ¡vs. ¡connecEonless ¡ ì Once ¡configured ¡the ¡applicaEon ¡can ¡ ì Pass ¡data ¡to ¡the ¡socket ¡for ¡network ¡transmission ¡ ì Receive ¡data ¡from ¡the ¡socket ¡(transmiced ¡through ¡ the ¡network ¡by ¡some ¡other ¡host) ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
13 ¡ What ¡is ¡a ¡Socket? ¡ Process ¡sends/receives ¡messages ¡ ì host ¡or ¡ host ¡or ¡ to/from ¡its ¡socket ¡ server ¡ server ¡ Socket ¡analogous ¡to ¡door ¡ ì controlled ¡by ¡ Sending ¡process ¡shoves ¡message ¡ ì app ¡developer ¡ out ¡door ¡ process ¡ process ¡ Transport ¡infrastructure ¡on ¡other ¡ ì socket ¡ socket ¡ side ¡of ¡door ¡carries ¡message ¡to ¡ TCP ¡with ¡ TCP ¡with ¡ socket ¡at ¡receiving ¡process ¡ Internet ¡ buffers, ¡ buffers, ¡ Imagine ¡you ¡are ¡just ¡wriKng ¡to ¡a ¡ ì variables ¡ variables ¡ file… ¡ API ¡allow ¡customizaEon ¡of ¡socket ¡ controlled ¡ ì by ¡OS ¡ Choose ¡transport ¡protocol ¡ ì Choose ¡parameters ¡of ¡protocol ¡ ì Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
14 ¡ Addressing ¡Processes ¡ ì To ¡receive ¡messages, ¡each ¡process ¡on ¡a ¡host ¡must ¡ have ¡an ¡ idenKfier ¡ ì IP ¡addresses ¡are ¡unique ¡ ì Is ¡this ¡sufficient? ¡ ì No, ¡there ¡can ¡thousands ¡of ¡processes ¡running ¡on ¡a ¡ single ¡machine ¡(with ¡one ¡IP ¡address) ¡ ì IdenEfier ¡must ¡include ¡ ì IP ¡address ¡ ì and ¡port ¡number ¡(example: ¡80 ¡for ¡web) ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
15 ¡ Ports ¡ ì Each ¡host ¡has ¡ Port ¡0 ¡ ¡65,536 ¡ports ¡ Port ¡1 ¡ ì Some ¡ports ¡are ¡ ¡ reserved ¡for ¡ ¡ Port ¡65535 ¡ specific ¡apps ¡ ì FTP ¡(20, ¡21), ¡Telnet ¡(23), ¡HTTP ¡(80), ¡etc… ¡ ì Outgoing ¡ports ¡(on ¡clients) ¡can ¡be ¡dynamically ¡assigned ¡by ¡ OS ¡in ¡upper ¡region ¡(above ¡49,152) ¡– ¡called ¡ ephemeral ¡ports ¡ ì See ¡ hcp://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers ¡ ¡ ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
16 ¡ Socket ¡Usage: ¡Client ¡Program ¡ ì Basic ¡socket ¡funcEons ¡for ¡ connecKon-‑oriented ¡ (TCP) ¡clients ¡ create ¡the ¡socket ¡descriptor ¡ 1. socket() connect ¡to ¡the ¡remote ¡server ¡ 2. connect() 3. send(),recv() ¡communicate ¡with ¡the ¡server ¡ 4. close() ¡ ¡end ¡communicaEon ¡by ¡closing ¡ ¡ ¡ ¡socket ¡descriptor ¡ ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
17 ¡ Application-‑Layer ¡Protocol ¡ ì Sockets ¡just ¡allow ¡us ¡to ¡send ¡raw ¡messages ¡ between ¡processes ¡on ¡different ¡hosts ¡ ì Transport ¡service ¡takes ¡care ¡of ¡moving ¡the ¡data ¡ ì What ¡exactly ¡is ¡sent ¡is ¡up ¡to ¡the ¡applicaEon ¡ ì An ¡ applicaKon-‑layer ¡protocol ¡ ì HTTP, ¡NTP, ¡IMAP, ¡SFTP, ¡Skype, ¡etc… ¡ Computer ¡Systems ¡and ¡Networks ¡ Fall ¡2014 ¡
Recommend
More recommend