第第99章章网络通信编程网络通信编程
实验目的实验目的实验目的实验目的
加深对网络编程原理的理解加深对网络编程原理的理解
深入了解客户深入了解客户//服务器网络编程的执行流程服务器网络编程的执行流程
学会使用套接字建立客户学会使用套接字建立客户学会使用套接字建立客户学会使用套接字建立客户服务器程序服务器程序服务器程序服务器程序
2
主要内容主要内容主要内容主要内容
背景知识背景知识
网间进程通信概念网间进程通信概念
套接字编程套接字编程
实验内容实验内容
UDPUDPUDPUDP通信通信通信通信
基于基于TCPTCP的客户的客户//服务器程序服务器程序
3
OSIOSIOSIOSI模型与模型与模型与模型与TCP/IPTCP/IPTCP/IPTCP/IP协议栈协议栈协议栈协议栈
4
TCPTCPTCPTCP协议协议协议协议
TCPTCP的特点的特点
端到端、面向连接、全双工通信端到端、面向连接、全双工通信
流接口、抽象成连续的字节流流接口、抽象成连续的字节流
面向连接的可靠传输面向连接的可靠传输面向连接的可靠传输面向连接的可靠传输
建立连接建立连接
正确正确正确正确、、、、顺序传送数据顺序传送数据顺序传送数据顺序传送数据
断开连接断开连接
处理的问题处理的问题处理的问题处理的问题
IPIP数据报的丢失、重复、失序、延迟数据报的丢失、重复、失序、延迟
发送和接收速度的匹配发送和接收速度的匹配发送和接收速度的匹配发送和接收速度的匹配
系统重启动,一方连接信息丢失系统重启动,一方连接信息丢失
网络拥塞网络拥塞网络拥塞网络拥塞
5
UDPUDPUDPUDP协议协议协议协议
无连接无连接
不需要在通信前建立连接不需要在通信前建立连接
不使用控制报文不使用控制报文
传输开销低传输开销低传输开销低传输开销低
面向报文面向报文
不将报文分割不将报文分割不将报文分割不将报文分割,,,,也不合并也不合并也不合并也不合并
UDPUDP报文的大小影响了网络的利用率报文的大小影响了网络的利用率
过小造成报头比率过大过小造成报头比率过大过小造成报头比率过大过小造成报头比率过大
过大造成过大造成MTUMTU 分片分片
尽力而为尽力而为尽力而为尽力而为
任意交互任意交互
一对一一对一一对一一对一、、、、一对多一对多一对多一对多、、、、多对一和多对多多对一和多对多多对一和多对多多对一和多对多
6
LinuxLinuxLinuxLinux 的网络分层结构的网络分层结构的网络分层结构的网络分层结构
网络应用网络应用
用户数据界面用户数据界面
BSD套接字套接字
接口界面接口界面
INET套接字
协议分层协议分层 TCP