IT 222 Computer Networks – 1 Dr. Rowayda A. Sadek Information Technology Department rowayda_sadek@yahoo.com 1 Course Resources • • • • • Lecture Slides Text Books Research Papers Assignments Lab 2 IT 221 Data Communication • Data transmission concepts, Terminology and techniques, Types and sources of data, communication models, Standards. Data Transmission techniques, Transmission media and characteristics. Information theory, Information sources, Information measure, entropy, Source codes: return-to-zero and non-return-to-zero signaling, Analog and digital transmission, Optical fiber systems, Modems, modulation; Transmission impairments, Data encoding techniques, Multiplexing techniques. 3 IT 222 Computer Networks – 1 • Definition and objectives, Classifications, topologies, Architecture, standards, Applications, ISO-OSI model, Switching techniques, Error detection and Correction, Network protocols, Routing strategies and techniques, Flow control, Congestion control , Public switched data network. Internetworking ; Introduction to ISDN and B-ISDN. 4 Text Books • We may use selective chapters from the following text books as well as some research papers – Main Text Book: • James F. Kurose, Keith Ross. Computer Networking: A Top-Down Approach Featuring the Internet (2nd Edition) Publisher: Pearson Addison Wesley; 3rd edition • William Stallings, Data and Computer Communications. 7th (or 8th) edition. Prentice Hall Publishing Company, Upper Saddle River, NJ, 2004, ISBN 0-13-100681-9. – Additional Text Books: • William J. Beyda, Data Communications: From Basics To Broadband, 3rd edition, Prentice Hall Publishing Company • Cole, Introduction to Telecommunication, • Behrouz A. Forouzan, Data Communications and Networking, 3rd Edition. • Andrew S. Tanenbaum, Computer Networks, 4th Edition, Publisher: Prentice Hall 5 Tentative Course Outline • Network classification, topologies, Architecture, standards, Applications. • ISO-OSI and TCP/IP model • TCP/IP Layers. – – – – – Error detection and Correction. Flow control, Congestion control Internetworking; Routing strategies Etc. • Wireless Networking 6 ILOs • Explain the fundamental concepts of computer networks, including network architectures, protocols, topologies, and transmission media. • Describe the key functions and principles of the different layers of the OSI model. • Analyze various network devices and their roles in internetworking (e.g., routers, switches, etc.). • Describe network technologies (e.g., wireless networks, cloud computing, SDN) • Analyze network traffic, and performance using tools and programming. • Design and implement simple networks for specific purposes (e.g., home network, small business network). 7 Network/System Administrator!!!!,… • Advantages – – – – Good salary Control other peoples Faster than others Relax • Disadvantages – ERROR, then people want to kill YOU !! Course Work • You can work in groups (number of students TBD) • Any requested assignment • May develop a simple network application in Client-Server architecture showing the capabilities of your socket programming. • Simulation Projects • May Critic for your colleagues’ papers smartly 9 Study… Basic network theory OSI Layer Network devices Routing Network security Programming • Network Skill – Operating system – Server – Client – Router, Switch, Cabling, etc (network devices) – Certificates • Experience – Time can answer ??? – Ready to self learning Protocol “Layers” Networks are complex! • many “pieces”: – hosts – routers – links of various media – applications – protocols – hardware, software Question: Is there any hope of organizing structure of network? Or at least our discussion of networks? Introduction 1-11 Open System Interconnection (OSI) • A model defines the stages or tasks of a protocol as it prepares to send data • Model is divided into seven distinct layers • Each layer perform a well-defined function • Layer boundaries are designed to minimize the information flow across the interfaces OSI Model Layers • Application Layer – Provides a user interface (examples: HTTP, SMTP) – Includes file, print, database, app. Services • Presentation Layer – Presents the data (example: JPEG) – Includes encryption, compression and translation services • Session Layer – Keeps different applications data separate OSI Model Layers • Transport Layer – Provides reliable delivery – Performs error detection – Includes end to end connection • Network Layer – Provides logical addressing – Routing layer OSI Model Layers • Data Link Layer – Combines packets into bytes then into frames – Performs error detection – Provides Media access addressing (point-topoint) – Media Access Control and Data Link Control • Physical Layer – Moves bits between devices Reference Models (2) • The TCP/IP reference model. OSI Model and Protocols Keys Layers of the OSI Model Network Devices • Wire • Wireless Router, Switch, Hub, Modem, … Network Software • Protocol Hierarchies • Design Issues for the Layers • Connection-Oriented and Connectionless Services • Service Primitives • The Relationship of Services to Protocols TCP/IP } if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1) { perror("setsockopt"); exit(1); } Programming my_addr.sin_family = AF_INET; // host byte order my_addr.sin_port = htons(MYPORT); // short, network byte order my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP memset(&(my_addr.sin_zero), '\0', 8); // zero the rest of the struct if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } if (listen(sockfd, BACKLOG) == -1) { perror("listen"); exit(1); } sa.sa_handler = sigchld_handler; // reap all dead processes sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; if (sigaction(SIGCHLD, &sa, NULL) == -1) { perror("sigaction"); exit(1); } while(1) { // main accept() loop sin_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) { perror("accept"); continue; } printf("server: got connection from %s\n", inet_ntoa(their_addr.sin_addr)); if (!fork()) { // this is the child process close(sockfd); // child doesn't need the listener if (send(new_fd, "Hello, world!\n", 14, 0) == -1) perror("send"); close(new_fd); exit(0); } close(new_fd); // parent doesn't need this } return 0; /* ** server.c -- a stream socket server demo */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/wait.h> #include <signal.h> #define MYPORT 3490 // the port users will be connecting to #define BACKLOG 10 // how many pending connections queue will hold void sigchld_handler(int s) { while(wait(NULL) > 0); } int main(void) { int sockfd, new_fd; // listen on sock_fd, new connection on new_fd struct sockaddr_in my_addr; // my address information struct sockaddr_in their_addr; // connector's address information int sin_size; struct sigaction sa; int yes=1; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } Example Networks • The Internet – RFC Documents: http://www.ietf.org/rfc.html • Connection-Oriented Networks: X.25, Frame Relay, and ATM • Ethernet • Wireless LANs: 802:11 Network Standardization • Who’s Who in the Telecommunications World – International Telecommunication Union (ITU) • Who’s Who in the International Standards World – International Standards Organization (ISO) • Who’s Who in the Internet Standards World – Internet Engineering Task Force (IETF) RFC (Request for Comments) documents IEEE 802 Standards The 802 working groups. The important ones are marked with *. The ones marked with are hibernating.