320 likes | 369 Views
Explore computer networking growth, protocols, standards, data representation, internetworking, the Internet, IoT, and future trends. Learn about network programming with Java, API development, and web services.
E N D
Second Semester, 2014 Data Communications and Network Programming:Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th http://www.cpe.ku.ac.th/~cpj Computer Engineering Department Kasetsart University, Bangkok, Thailand Most materials in this presentation were prepared by Assoc. Prof. Anan Phoenphoem (http://www.cpe.ku.ac.th/~anan)
Outline • Motivation • Growth of Computer Networking • Data Communication • Networks • Protocols and Standards • Standard Organizations
Motivations Efficient way to share resources Cost – less expensive Accessibility – easier Efficient way to exchange information Time – faster Size – bigger Correctness – accurate
Example - A Computer Network Laptop Workstation Media Links Server Scanner Printer
Data Communication Computer Hi, Hi, how how are are you? you? Hi, how are you? Hi, how are you? 01010001 01010001
Data Comm. Components 5 Protocol 1 Message 2 Sender 3 Receiver 4 Medium Hi How are you doing?
Protocols and Standards • Protocol • A set of rules governing data communications • Syntax: format of data block • Semantics: meaning of each section • Timing: speed and sequencing • Standards • De facto (in practice) standards not approved but widely adopted • De jure (in law) standards approved by a standard organization, e.g., ISO, IEEE
Protocols and Standards • To communicate, two devices must follow the same set of communication protocols • E.g., they must • be connected to the same medium • understand each other's messages • In other words, they comply with the same standard
Data Representation Standards • Numbers • 8/16/32 bit integers • floating point • Text • ASCII, Unicode • Images • Bit patterns, Graphics formats JPG/GIF/etc • Audio Samples of continuous signal • Video Sequence of bitmap images 150 2 255
Company B Network Interface Card (NIC) Company C Company D Connection Standards Company A
Internetworking • How to allow devices from different standards to communicate • Gateways/routers – devices capable of communicating in several standards • These become "network of networks"
UCLA Stanford UC Santa Barbara U. of Utah The Internet • The largest internetwork (network of networks) in the world • Devices communicating with TCP/IP protocol suite at high level
Internet Growth #computers attached to Internet
Recent and Future Trends The availability of high-quality teleconferencing systems Some social networking applications such as Facebook Twitter Google+ Many others The Internet of Things (IoT)
Future of the Internet http://www.computerworld.com/s/article/print/9191518/Final_IPv4_addresses_to_be_issued_within_months_NRO_warns
Future of the Internet http://www.computerworld.com/s/article/9207961/Update_ICANN_assigns_its_last_IPv4_addresses
Future of the Internet http://www.zdnet.com/blog/networking/its-official-asias-just-run-out-of-ipv4-addresses/948
Internet of Things http://www.opinno.com/en/content/internet-things-0
Connected Living https://devcentral.f5.com/articles/security-sidebar-defending-the-internet-of-things
Connected Living http://www.jumpthecurve.net/wp-content/uploads/2014/03/ericssonthings1.jpg
Future of the Internet http://www.itworld.com/networking/231929/usenix-google-deploys-ipv6-internal-network
What Will We Learn in this course Data communication concepts Computer networking devices Internet protocol suite (TCP/IP) Capture and analyze network traffic of well-known applications Network programming Standalone socket applications Web-based applications Web services
Languages and Tools • Basic network tools • ping, traceroute (tracert on Windows) • Network traffic monitor • Wireshark • Programming • Java (with Groovy shell)
Monitoring Network Traffic Sample results from Wireshark
Application Program Interface (API) • Set of operation for application programmer • Specify arguments and semantics
API for developing applications that perform inter-process communication in C/C++ most commonly for communications across a computer network, especially UNIX Example functions listen – used by server to wait for contact from client connect – used by client to contact server send – used by either client or server to send data recv – used by either client or server to receive data Java, .NET, Python, etc. provide convenient wrappers around socket API Easier to write than C/C++ Berkeley Socket API
Web APIs (Web Services) • APIs defining set of request and response messages via web context (i.e., HTTP) • usually in Extensible Markup Language (XML) • or JavaScript Object Notation (JSON) format • Examples • Facebook API • Twitter API • Various Google APIs
Summary • Motivations of computer networking • Data Communication components • Network application programming and APIs