Master the foundational principles and advanced techniques of network programming and client-server architectures with this comprehensive, hands-on course designed for aspiring systems programmers and backend developers. You'll learn to build robust networked applications using socket programming with UDP, TCP, and SCTP protocols, while exploring inter-process communication mechanisms including signals, pipes, message queues, and shared memory. The course progresses from fundamental network concepts and layered architectures to advanced topics in distributed systems, remote procedure calls (RPC), and scalable server design patterns. Through practical implementation exercises, you'll develop real-world client-server applications including Telnet, FTP, and HTTP servers, while mastering performance optimization techniques for concurrent and preforked server architectures. You'll gain expertise in I/O models, asynchronous programming, network debugging tools like tcpdump and Wireshark, and distributed application frameworks. Whether you're preparing for roles in backend development, cloud computing, microservices architecture, or systems engineering, this course equips you with essential skills to design, implement, and optimize networked applications that power modern distributed systems and enterprise infrastructure.
通过 Coursera Plus 提高技能,仅需 239 美元/年(原价 399 美元)。立即节省

推荐体验
推荐体验
初级
Proficiency in C programming, understanding of operating systems concepts, and basic knowledge of computer networks required.
推荐体验
推荐体验
初级
Proficiency in C programming, understanding of operating systems concepts, and basic knowledge of computer networks required.
您将学到什么
Write advanced C programs for OS and network-level tasks, including inter-process communication, threading, and synchronisation techniques.
Develop high-performance servers and distributed applications using client-server models, remote procedure calls, and socket programming.
Ensure efficient communication between hosts, processes, and threads while applying concurrency, synchronisation, and programming principles.
您将获得的技能
- Computer Networking
- File Systems
- Network Protocols
- Application Servers
- Distributed Computing
- Network Performance Management
- System Programming
- Servers
- Software Development
- Debugging
- Scalability
- System Design and Implementation
- TCP/IP
- Network Architecture
- File Transfer Protocol (FTP)
- Web Services
- Microservices
- Systems Architecture
要了解的详细信息
了解顶级公司的员工如何掌握热门技能

该课程共有10个模块
In this module, you will learn the basics of computer networks and their architecture, the founding principle of the Internet and its architecture, addressing schemes at the data link layer (i.e, MAC address), network layer (i.e., IPv4 address), and transport layer (i.e., port numbers), and finally, you will have your first program that has the ability to communicate over a network.
涵盖的内容
11个视频5篇阅读材料10个作业1个非评分实验室
11个视频•总计84分钟
- Meet Your Instructor - Prof. Rajib Ranjan Maiti•2分钟
- Meet Your Instructor - Prof. Haribabu Kotakula•1分钟
- Course Introductory Video•9分钟
- What is a Computer Network?•7分钟
- Layered Network Architecture•8分钟
- Internet Architecture•11分钟
- The Success of the Internet•10分钟
- Addressing Scheme at Network Access Layer•15分钟
- Addressing Scheme at Network Layer•10分钟
- Addressing Scheme at Transport Layer•8分钟
- Standalone•5分钟
5篇阅读材料•总计200分钟
- Course Overview•30分钟
- Course Structure & Critical Information•10分钟
- Recommended Reading: Introduction to Computer Networks•60分钟
- Recommended Reading: Implementation of Network Software•60分钟
- Recommended Reading: Example Networked Programs•40分钟
10个作业•总计84分钟
- What is a Computer Network?•3分钟
- Layered Network Architecture•3分钟
- Internet Architecture•3分钟
- The Success of the Internet•3分钟
- Addressing Scheme at Network Access Layer•3分钟
- Addressing Scheme at Network Layer•3分钟
- Addressing Scheme at Transport Layer•3分钟
- Standalone•3分钟
- Let's Practice: Overview of Computer Networks•30分钟
- Test Yourself: Overview of Computer Networks•30分钟
1个非评分实验室•总计60分钟
- Practice Lab: Daytime TCP Programming in C•60分钟
In this module, you will learn the concept of process and its representations, requirements and mechanisms of interprocess communications, the use of signal, pipe, message queue, shared memory for interprocess communication, the concept of synchronisation, and the use of semaphores for process synchronisation.
涵盖的内容
14个视频4篇阅读材料16个作业1个非评分实验室
14个视频•总计110分钟
- Process and its Representation•7分钟
- Creation of New Process•8分钟
- Mechanisms for IPC•6分钟
- Signals•8分钟
- Signal to a Process•11分钟
- IPC Using Simplex Pipe•10分钟
- IPC Using Duplex Pipe•10分钟
- Message Queue•5分钟
- Example of using POSIX Message Queue•11分钟
- Shared Memory•8分钟
- Basics of Synchronisation•9分钟
- Overview of CS Solutions•7分钟
- Basics of Semaphore•7分钟
- Semaphore to Classical Problem•4分钟
4篇阅读材料•总计330分钟
- Recommended Reading: Introduction to Process•60分钟
- Recommended Reading: IPC Primitives 1•90分钟
- Recommended Reading: IPC Primitives 2•90分钟
- Recommended Reading: Semaphores for Synchronisation•90分钟
16个作业•总计102分钟
- Process and its Representation•3分钟
- Creation of New Process•3分钟
- Mechanisms for IPC•3分钟
- Signals•3分钟
- Signal to a Process•3分钟
- IPC Using Simplex Pipe•3分钟
- IPC Using Duplex Pipe•3分钟
- Message Queue•3分钟
- Example of using POSIX Message Queue•3分钟
- Shared Memory•3分钟
- Basics of Synchronisation•3分钟
- Overview of CS Solutions•3分钟
- Basics of Semaphore•3分钟
- Semaphore to Classical Problem•3分钟
- Let's Practice: Inter-Process Communication•30分钟
- Test Yourself: Inter-Process Communication•30分钟
1个非评分实验室•总计60分钟
- Practice Lab: Process Management and Inter-Process Communication in C•60分钟
In this module, your will learn BSD networking and hosts in the networks, testing connections between hosts and presence of hosts. You will also explore an advanced network simulation tool, named "mininet", for simulating networks. You will learn various networking APIs, APIs for clients and servers, IPv6 compatible APIs. Finally, TCP/IP big picture, basics of TCP, UDP, SCTP and IP, tracing and debugging simple programs and programs with system calls, sock and tcpdump will be covered.
涵盖的内容
12个视频5篇阅读材料14个作业
12个视频•总计76分钟
- BSD Networking•9分钟
- Testing Network and its Hosts•7分钟
- Virtual Topology in Mininet•8分钟
- Basic Networking APIs•6分钟
- Networking APIs in Server Program•8分钟
- Networking APIs for IPv6 Compatible Client•4分钟
- TCP/IP Big Picture•7分钟
- TCP and UDP•7分钟
- IP and SCTP•6分钟
- Tracing a Simple User Program•3分钟
- Tracing a Program With System Call•4分钟
- Sock and TCPDump•6分钟
5篇阅读材料•总计420分钟
- Recommended Reading: BSD Networking and Hosts•90分钟
- Recommended Reading: BSD Networking and Hosts•90分钟
- Recommended Reading: Protocol Usage by Common Applications•90分钟
- Recommended Reading: Program Debugging Techniques•90分钟
- Practice Lab: Network Programming and Debuggingin C•60分钟
14个作业•总计96分钟
- BSD Networking•3分钟
- Testing Network and its Hosts•3分钟
- Virtual Topology in Mininet•3分钟
- Basic Networking APIs•3分钟
- Networking APIs in Server Program•3分钟
- Networking APIs for IPv6 Compatible Client•3分钟
- TCP/IP Big Picture•3分钟
- TCP and UDP•3分钟
- IP and SCTP•3分钟
- Tracing a Simple User Program•3分钟
- Tracing a Program With System Call•3分钟
- Sock and TCPDump•3分钟
- Let's Practice: Network Programming•30分钟
- Test Yourself: Network Programming•30分钟
In this module, you will learn UDP sockets and their usage to develop Echo client-server program, TCP sockets and their usage to develop Echo client-server program, and SCTP sockets and their usage in client-server programs.
涵盖的内容
9个视频4篇阅读材料11个作业
9个视频•总计50分钟
- UDP Sockets and Applications•5分钟
- UDP Echo Client and Server•4分钟
- When to Use UDP Socket•4分钟
- TCP Client Functions•7分钟
- TCP Server Functions•7分钟
- TCP Sockets Examples•5分钟
- Basics in SCTP Sockets•6分钟
- SCTP Sockets Functions•6分钟
- Client/Server Example with SCTP Sockets•6分钟
4篇阅读材料•总计240分钟
- Recommended Reading: UDP Sockets•60分钟
- Recommended Reading: TCP Sockets•60分钟
- Recommended Reading: SCTP Sockets •60分钟
- Practice Lab: Implementing UDP, TCP, and SCTP Client-Server Communication•60分钟
11个作业•总计87分钟
- UDP Sockets and Applications•3分钟
- UDP Echo Client and Server•3分钟
- When to Use UDP Socket•3分钟
- TCP Client Functions•3分钟
- TCP Server Functions•3分钟
- TCP Sockets Examples•3分钟
- Basics in SCTP Sockets•3分钟
- SCTP Sockets Functions•3分钟
- Client/Server Example with SCTP Sockets•3分钟
- Let's Practice: Socket Interface•30分钟
- Test Yourself: Socket Interface•30分钟
In this module, you will learn the mechanism to measure server performance, simulating a large number of clients, measuring performance of a large variety of server design options, like TCP iterative server, concurrent server, server with preformed child processes without file locking, server with thread, servers with preformed child processes and file locking, servers with thread locking, develop HTTP client and server programs.
涵盖的内容
12个视频4篇阅读材料14个作业
12个视频•总计82分钟
- Performance of Server•8分钟
- Simulating Multiple Clients•4分钟
- TCP Iterative Server•8分钟
- TCP Concurrent Server•5分钟
- TCP Preforked Servers Without Locking•10分钟
- TCP Servers with Thread•4分钟
- TCP Preforked Servers with File Lock•12分钟
- TCP Preforked Servers with Thread Locking•4分钟
- HTTP Dialogue Basics•8分钟
- HTTP Client Program•7分钟
- HTTP Client Program (Contd.)•5分钟
- HTTP Server Program•7分钟
4篇阅读材料•总计300分钟
- Recommended Reading: Server Design•60分钟
- Recommended Reading: TCP Preforked Servers with File Locking•90分钟
- Recommended Reading: Real World Servers•90分钟
- Practice Lab: TCP Client-Server Communication•60分钟
14个作业•总计96分钟
- Performance of Server•3分钟
- Simulating Multiple Clients•3分钟
- TCP Iterative Server•3分钟
- TCP Concurrent Server•3分钟
- TCP Preforked Servers Without Locking•3分钟
- TCP Servers with Thread•3分钟
- TCP Preforked Servers with File Lock•3分钟
- TCP Preforked Servers with Thread Locking•3分钟
- HTTP Dialogue Basics•3分钟
- HTTP Client Program•3分钟
- HTTP Client Program (Contd.)•3分钟
- HTTP Server Program•3分钟
- Let's Practice: Client-Server Computing Model•30分钟
- Test Yourself: Client-Server Computing Model•30分钟
In this module, you will learn the basics of Telnet and its command structure, Telnet client and server programs, basics of FTP and its process model, FTP client and server programs, advantage of concurrency in server programs, and example implementations of a simple iterative and concurrent web search engines.
涵盖的内容
11个视频4篇阅读材料13个作业
11个视频•总计75分钟
- Basics of Telnet•9分钟
- Telnet Command Structure•7分钟
- Telnet Server•5分钟
- Telnet Client•4分钟
- Basics of FTP•7分钟
- FTP Process Model•7分钟
- FTP Server•8分钟
- FTP Client•7分钟
- Advantage of Concurrency in Server and Client•6分钟
- Sequential Web Search Engine•8分钟
- Concurrent Web Search Engine•7分钟
4篇阅读材料•总计330分钟
- Recommended Reading: Real World Servers for Remote Terminal•90分钟
- Recommended Reading: Real World Servers for File Transfer•90分钟
- Recommended Reading: Concurrency Issues in Server•90分钟
- Practice Lab: Implementing and Debugging an FTP Client-Server in C•60分钟
13个作业•总计93分钟
- Basics of Telnet•3分钟
- Telnet Command Structure•3分钟
- Telnet Server•3分钟
- Telnet Client•3分钟
- Basics of FTP•3分钟
- FTP Process Model•3分钟
- FTP Server•3分钟
- FTP Client•3分钟
- Advantage of Concurrency in Server and Client•3分钟
- Sequential Web Search Engine•3分钟
- Concurrent Web Search Engine•3分钟
- Let's Practice: Traditional Client-Server Applications•30分钟
- Test Yourself: Traditional Client-Server Applications•30分钟
In this module, you will learn about the types of socket operation, types of I/O models, blocking and non-blocking I/O models, signal-driven and asynchronous I/O models. Finally, you will revisit str_cli() Function and then go on to develop a better str_cli() function.
涵盖的内容
10个视频4篇阅读材料12个作业
10个视频•总计59分钟
- Types of Socket Operations•10分钟
- Types of I/O Models•4分钟
- Blocking and Nonblocking I/O Models•5分钟
- Signal-Driven I/O Model and Asynchronous I/O Model•4分钟
- Revisiting str_cli() Function•6分钟
- Buffer Management•5分钟
- Better str_cli() – Part1•5分钟
- Improved str_cli() – Part2•7分钟
- Improved str_cli() – Part3•5分钟
- gf_time() and Timeline Diagram•7分钟
4篇阅读材料•总计360分钟
- Recommended Reading: I/O Models•120分钟
- Recommended Reading: Using I/O Models•90分钟
- Recommended Reading: Revisiting str_cli()•90分钟
- Practice Lab: Nonblocking Socket Programming and TCP/IP Communication in Solaris andUbuntu•60分钟
12个作业•总计90分钟
- Types of Socket Operations•3分钟
- Types of I/O Models•3分钟
- Blocking and Nonblocking I/O Models•3分钟
- Signal-Driven I/O Model and Asynchronous I/O Model•3分钟
- Revisiting str_cli() Function•3分钟
- Buffer Management•3分钟
- Better str_cli() – Part1•3分钟
- Improved str_cli() – Part2•3分钟
- Improved str_cli() – Part3•3分钟
- gf_time() and Timeline Diagram•3分钟
- Let's Practice: Design Issues•30分钟
- Test Yourself: Design Issues•30分钟
In this module, you will learn the basics of remote procedure call, concept of door and use it for remote procedure call within a host, understand the function definitions and data structures used in door, get introduced to Sun RPC and use it to build up client-server applications.
涵盖的内容
11个视频4篇阅读材料13个作业
11个视频•总计72分钟
- Basics of Procedure Calls•7分钟
- A Basic Client Example of Using Door•4分钟
- A Basic Server Example of Using Door•7分钟
- Control Flow in Door-Based RPC•5分钟
- Door Functions and Structures 1•9分钟
- Door Functions and Structures 2•9分钟
- Descriptor Passing•6分钟
- Descriptor Passing Program•6分钟
- Sun RPC Introduction•8分钟
- RPC Server Program•7分钟
- RPC Client-Server Design•4分钟
4篇阅读材料•总计270分钟
- Recommended Reading: Doors•60分钟
- Recommended Reading: Door Functions and Structures•90分钟
- Recommended Reading: Sun RPC•60分钟
- Practice Lab: UNIX Network Programming on Solaris OS using VirtualBox•60分钟
13个作业•总计93分钟
- Basics of Procedure Calls•3分钟
- A Basic Client Example of Using Door•3分钟
- A Basic Server Example of Using Door•3分钟
- Control Flow in Door-Based RPC•3分钟
- Door Functions and Structures 1•3分钟
- Door Functions and Structures 2•3分钟
- Descriptor Passing•3分钟
- Descriptor Passing Program•3分钟
- Sun RPC Introduction•3分钟
- RPC Server Program•3分钟
- RPC Client-Server Design•3分钟
- Let's Practice: Remote Procedure Calls•30分钟
- Test Yourself: Remote Procedure Calls•30分钟
In this module, you will explore the process of building distributed applications through the use of remote procedure calls (RPC). You will gain a deep understanding of how RPC allows communication between different systems over a network by invoking functions or procedures on remote servers as if they were local. The module will also cover how to represent and transmit data across networks in a way that is independent of any specific programming language, ensuring compatibility between different systems. Additionally, you will learn to work with popular RPC frameworks, gaining hands-on experience in implementing, managing, and optimising these frameworks for effective communication in distributed environments.
涵盖的内容
14个视频4篇阅读材料16个作业
14个视频•总计110分钟
- Monolithic vs Distributed Programs •5分钟
- Communication Approaches for Distributed Programs•6分钟
- Need for Standard Network Representation•5分钟
- Data Representations•5分钟
- XDR Data Representation•11分钟
- Protocol Buffers •5分钟
- XML & JSON•10分钟
- RPC Subsystem•10分钟
- Call Semantics•9分钟
- Stubs and Skeletons•5分钟
- SUN RPC-1•8分钟
- Sun RPC 2•16分钟
- gRPC-1•7分钟
- gRPC-2•6分钟
4篇阅读材料•总计200分钟
- Recommended Reading: Distributed Applications•20分钟
- Recommended Reading: External Data Representations•60分钟
- Recommended Reading: Remote Procedure Calls•60分钟
- Practice Lab: Implementing Remote Procedure Calls (RPC) using gRPC•60分钟
16个作业•总计144分钟
- Monolithic vs Distributed Programs •6分钟
- Communication Approaches for Distributed Programs•6分钟
- Need for Standard Network Representation•6分钟
- Data Representations•6分钟
- XDR Data Representation•6分钟
- Protocol Buffers •6分钟
- XML & JSON•6分钟
- RPC Subsystem•6分钟
- Call Semantics•6分钟
- Stubs and Skeletons•6分钟
- SUN RPC-1•6分钟
- Sun RPC 2•6分钟
- gRPC-1•6分钟
- gRPC-2•6分钟
- Let's Practice: Distributed Programming•30分钟
- Test Yourself: Distributed Programming•30分钟
In this module, you will explore the core challenges faced when designing distributed systems, focusing on the complexities that arise from ensuring communication, consistency, fault tolerance, and scalability across multiple interconnected systems. You will delve into the various design approaches and architectural patterns used to address these challenges, such as client-server models, peer-to-peer networks, and hybrid architectures. Through these discussions, you will gain an understanding of the trade-offs involved in making design decisions, such as balancing performance with fault tolerance, or consistency with availability, which are critical in creating reliable and efficient distributed systems. The module will also cover distributed file systems, specifically the Network File System (NFS) and the Andrew File System (AFS). You will learn how NFS enables remote file access over a network, providing a seamless experience similar to local file access, and how AFS uses a more sophisticated approach with caching and replication mechanisms to improve performance and fault tolerance. By the end of the module, you will have a deeper appreciation for the complexities of distributed system design and the strategies employed to manage the inherent trade-offs in real-world applications.
涵盖的内容
14个视频4篇阅读材料16个作业
14个视频•总计127分钟
- Characteristics of Distributed Systems•8分钟
- Challenges in Distributed Systems•9分钟
- CAP Theorem•9分钟
- Design Approaches - Architectural Considerations•10分钟
- Design Approaches for Scalability•9分钟
- Design Approaches for Distributed Data•10分钟
- Design Approaches for High Availability•10分钟
- Design Approaches - Communication and Security•9分钟
- Design Approaches - A Study of Google Search Engine•6分钟
- Design Approaches - A Study of AWS Dynamo System•11分钟
- Sun Network File System (NFS) - Architecture•5分钟
- NFS – RPC Calls•12分钟
- NFS – Caching•11分钟
- Andrew File System•9分钟
4篇阅读材料•总计250分钟
- Recommended Reading: Distributed Systems•120分钟
- Recommended Reading: Network File Systems•60分钟
- Practice Lab: Network File System•60分钟
- Course Summary•10分钟
16个作业•总计144分钟
- Characteristics of Distributed Systems•6分钟
- Challenges in Distributed Systems•6分钟
- CAP Theorem•6分钟
- Design Approaches - Architectural Considerations•6分钟
- Design Approaches for Scalability•6分钟
- Design Approaches for Distributed Data•6分钟
- Design Approaches for High Availability•6分钟
- Design Approaches - Communication and Security•6分钟
- Design Approaches - A Study of Google Search Engine•6分钟
- Design Approaches - A Study of AWS Dynamo System•6分钟
- Sun Network File System (NFS) - Architecture•6分钟
- NFS – RPC Calls•6分钟
- NFS – Caching•6分钟
- Andrew File System•6分钟
- Let's Practice: Distributed System Design•30分钟
- Test Yourself: Distributed System Design•30分钟
位教师

提供方

提供方

Birla Institute of Technology & Science, Pilani (BITS Pilani) is one of only ten private universities in India to be recognised as an Institute of Eminence by the Ministry of Human Resource Development, Government of India. It has been consistently ranked high by both governmental and private ranking agencies for its innovative processes and capabilities that have enabled it to impart quality education and emerge as the best private science and engineering institute in India. BITS Pilani has four international campuses in Pilani, Goa, Hyderabad, and Dubai, and has been offering bachelor's, master’s, and certificate programmes for over 58 years, helping to launch the careers for over 1,00,000 professionals.
从 Computer Security and Networks 浏览更多内容
状态:预览预览VVanderbilt University
课程
BBirla Institute of Technology & Science, Pilani
课程
状态:预览预览TThe Hong Kong University of Science and Technology
课程
状态:免费试用免费试用VVanderbilt University
课程
人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
常见问题
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
更多问题
提供助学金,
¹ 本课程的部分作业采用 AI 评分。对于这些作业,将根据 Coursera 隐私声明使用您的数据。


