网络编程ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

特权福利
特权说明
VIP用户有效期内可使用VIP专享文档下载特权下载或阅读完成VIP专享文档(部分VIP专享文档由于上传者设置不可下载只能 阅读全文),每下载/读完一篇VIP专享文档消耗一个VIP专享文档下载特权。
年VIP
月VIP
连续包月VIP
VIP专享文档下载特权
享受60次VIP专享文档下载特权,一 次发放,全年内有效。
二、TCP协议
TCP连接建立是一个三次握手过程,三次握手的目的是使数据的发送和 接收同步。其过程如下: ➢ 服务器必须准备好接受外来的连接。通过调用socket, bind, listen函数
完成。称为被动打开。 ➢ 客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN
(表示同步)分节,告诉服务器客户将在(待建立的)连接中发送的 数据的初始序列号。 ➢ 服务器必须确认客户的SYN,同时自己也得发送一个SYN分节。服务 器以单个分节向客户发送SYN和对客户的SYN的ACK(表示确认)。 ➢ 客户必须确认服务器的SYN。
Note:因每个方向都需要一个FIN和一个ACK,所以一般需 要四个分节。但执行被动关闭的那一端的TCP在步骤2和3发 出的ACK和FIN也可以合并为一个分节。
二、TCP协议
客户
Close 主动关闭
服务器
FIN M ACK M+1 FIN N ACK N+1
被动关闭 Read返回0
Close
三、UDP协议
包权
人书友圈7.三端同步
一、TCP/IP基础知识
TCP/IP协议参考模型共分四层:
5
一、TCP/IP基础知识
✓ 网络接口层是TCP/IP的最底层,负责从网络接收IP数据报及通过网络发送 IP数据报。
✓ 网间网层(也叫IP层、网络层)负责相邻计算机之间的通信。其功能包括:
➢ 处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报, 填充报头,选择去往信宿机的路径,然买的VIP时长期间,下载特权不清零。
100W优质文档免费下 载
VIP有效期内的用户可以免费下载VIP免费文档,不消耗下载特权,非会员用户需要消耗下载券/积分获取。
部分付费文档八折起 VIP用户在购买精选付费文档时可享受8折优惠,省上加省;参与折扣的付费文档均会在阅读页标识出折扣价格。
档消耗一个共享文档下载特权。
年VIP
月VIP
连续包月VIP
享受100次共享文档下载特权,一次 发放,全年内有效
赠每的送次VI的发P类共放型的享决特文定权档。有下效载期特为权1自个V月IP,生发效放起数每量月由发您放购一买次,赠 V不 我I送 清 的P生每 零 设效月 。 置起1自 随5每动 时次月续 取共发费 消享放, 。文一前档次往下,我载持的特续账权有号,效-自
TCP/IP模型
二、TCP协议
TCP(传输控制协议)是一种可靠的面向连接的传送服务。主机交 换数据必须首先建立连接,传输完毕后断开连接。它用位流通信, 即数据被作为无结构的字节流。它提供反馈重发机制,从而保证数 据的可靠传输。
二、TCP协议
➢ TCP是面向连接的。一个TCP客户建立与一个给定服务器的连接, 并跨该连接与那个服务器交换数据,然后终止连接。
网络编程基础
网络编程基础
TCP/IP基础知识 TCP协议 UDP协议 网络编程相关概念 WinSock API常用函数 基于TCP套接字编程步骤 带外数据
一、TCP/IP基础知识
TCP/IP协议是一组在网络中提供可靠数据传输和无连接 数据服务的协议。其中提供可靠数据传输的协议称为传输 控制协议TCP,而提供无连接数据包服务的协议叫做 Internet协议IP。但是TCP/IP协议并不是只有TCP和IP两 个协议,而是包含很多其他协议的一个网络协议的集合。
TCP/IP 协议组大体上分为三部分: 1.Internet 协议(IP) 2.传输控制协议(TCP)和用户数据报文协议(UDP) 3.处于TCP 和UDP 之上的一组协议专门开发的应用程 序。它们包括:TELNET,文件传送协议(FTP),域名服 务(DNS)和简单的邮件传送程序(SMTP)等许多协议。
➢ 处理输入数据报:检查其合法性,去掉IP报头,将剩下部分交给适当 的传输协议。
➢ 处理路由、流控、拥塞等。 ✓ 传输层负责网络主机与主机的通信。其功能如下:
➢ 格式化信息流。 ➢ 提供连接/非连接端对端的传输。 ✓ 应用层向用户提供一组常用的应用程序。
6
一、TCP/IP基础知识
用户数据 App头部 用户数据
四、网络编程相关概念
2.套接字(Socket) 为了能够方便的开发网络应用软件,由美国伯克
利大学在UNIX上推出了一种应用程序访问通信协 议的操作系统调用套接字(Socket)。Socket的出 现,使程序员可以很方便地访问TCP/IP,从而开 发各种网络应用程序。随着UNIX的应用推广,套 接字在编写网络软件中得到了极大的普及。后来 套接字又被引进了Windows等操作系统,称为开 发网络应用程序非常有效快捷的工具。 。
VIP有效期内享有搜索结果页以及文档阅读页免广告特权,清爽阅读没有阻碍。
知识影响格局,格局决定命运! 多端互通
抽奖特权
VIP有效期内可以无限制将选中的文档内容一键发送到手机,轻松实现多端同步。 开通VIP后可以在VIP福利专区不定期抽奖,千万奖池送不停!
福利特权
开通VIP后可在VIP福利专区定期领取多种福利礼券。
0下载券文档一键搜索 VIP用户可在搜索时使用专有高级功能:一键搜索0下来自券文档,下载券不够用不再有压力!
内容特 无限次复制特权 权 文档格式转换
VIP有效期内可以无限次复制文档内容,不用下载即可获取文档内容 VIP有效期内可以将PDF文档转换成word或ppt格式,一键转换,轻松编辑!
阅读页去广告
➢ TCP提供流量控制。TCP总是 告诉对端它能够接收多少字节的数 据,这称为通告窗口。这个窗口在任何时刻都指出接收缓冲区中 可用空间,从而确保发送端发送的数据不会溢出接收缓冲区。
➢ TCP的连接是全双工的。
二、TCP协议
TCP数据包头
TCP数据包头格式:
二、TCP协议
源端口、目的端口:16位长,标识出远端和本地的端口号。 序号:32位长,标识发送的数据报的顺序。 确认号:32位长,希望收到的下一个数据报的序列号。 TCP头长:4位长,表明TCP头中包含多少个32位字。 6位未用。 ACK:ACK为1表明确认号是合法的;如果ACK为0,那么数据报不包含确认信息, 确认字段被省略。 PSH:表示是带有PUSH标志的数据。因此请求数据报一到接收方便可送往应用 程序而不必等到缓冲区装满时才传送。 RST:用于复位由于主机崩溃或其他原因而出现的错误的连接,还可以用于拒绝 非法的数据报或拒绝连接请求。 SYN:表示同步。 FIN:用于释放连接。 窗口大小:16位长,窗口大小字段表示在确认了字节之后还可以发送多少个字节。 校验和:16位长,是为了确保高可靠性而设置的,它校验头部、数据和伪TCP头 部之和。 可选项:0个或多个32位字,包括最大TCP载荷、窗口比例、选择重发数据报等 选项。
二、TCP协议
客户
服务器
Socket Connect(阻塞)
(主动打开)
SYN J
Socket,bind,listen (被动打开)
Accept(阻塞)
SYN K, ack J+1
Connect返回
ack K+1
Accept返回 Read阻塞
二、TCP协议
TCP连接关闭过程如下: ➢ 某个进程首先调用close(称这一端执行主动关闭), 这一 端的TCP于是发送一个FIN分节,表示数据发送完毕。 ➢ 另一端称为被动关闭。TCP对接收的FIN分节进行确认, 并以文件结束标志传递给应用程序。FIN的接收意味着应 用进程在相应连接上再也接收不到额外数据。 ➢ 一段时间后,接收到文件结束标志的应用程序调用close, 这也导致向对方发送一个FIN分节。 ➢ 接收到这个FIN分节的原发送方TCP对它进行确认。
UDP协议(用户数据报协议)是建立在IP协议基础 之上的,用在传输层的协议。UDP提供了无连接的 数据报服务。UDP和IP协议一样,是不可靠的数据 报服务。
三、UDP协议
➢ UDP提供无连接服务 ➢ UDP缺乏可靠性支持,应用程序必须实现:确认、
超时、重传、流量控制等 ➢ UDP面向记录服务
UDP套接口是无连接的、不可靠的数据报协议;既 然它不可靠为什么还要用呢?其一:当应用程序使 用广播或多播是只能使用UDP协议;其二:由于他 是无连接的,所以速度快。
TCP头部
用户数据
TCP段
IP头部 TCP头部
用户数据
以太网 头部
IP头部 TCP头部
用户数据
以太网帧 40~1500字节
IP分组
以太网 尾部
FTP 客户
TCP
IP
以太网驱 动程序
一、TCP/IP基础知识
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
OSI模型
应用层
TCP UDP IPv4, IPv6 网络接口层
三、UDP协议
协议的选择依据: (1)对数据可靠性的要求
高可靠性要求的应用需选择TCP协议,如验证、密码字段的传 送都是不允许出错的,而对数据的可靠性要求不高的应用可选择UDP传 送。 (2)应用的实时性
TCP协议在传送过程中要使用三次握手、重传确认等手段来保 证数据传输的可靠性。使用TCP协议会有较大的时延,因此不适合对实 时性要求较高的应用,如VOIP、视频监控等。相反,UDP协议则在这 些应用中能发挥很好的作用。 (3)网络的可靠性
示通信实体中进行通信的进程,TCP/IP协议提出了协议端口( Protocol Port)的概念,简称端口。 端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区 )。应用程序通过系统调用与某端口建立连接(Binding)后 ,传输层传给该端口的数据都被相应的进程所接收,相应进程 发给传输层的数据都要通过该端口输出。 端口使用一个16位的数字表示,所以它的范围为0~65535, 1024以下的端口号保留给预定义的服务。例如,http使用的80 端口。所以我们在编写网络应用程序时,要为程序制定1024以 上的端口号。
VIP专享文档下载特权自VIP生效起每月发放一次, 每次发放的特权有效期为1个月,发放数量由您购买 的VIP类型决定。
每月专享9次VIP专享文档下载特权, 自VIP生效起每月发放一次,持续有 效不清零。自动续费,前往我的账号 -我的设置随时取消。
服务特 权
共享文档下载特权
VIP用户有效期内可使用共享文档下载特权下载任意下载券标价的文档(不含付费文档和VIP专享文档),每下载一篇共享文
由于TCP协议的提出主要是解决网络的可靠性问题,它通过各 种机制来减少错误发生的概率。因此,在网络状况不是很好的情况下需 选用TCP协议(如在广域网等情况),在网络状况很好的情况下(如局 域网等)应选择UDP协议来减少网络负荷。
四、网络编程相关概念
1.端口 按照OSI七层参考模型,传输层提供进程通信的能力。为了表
四、网络编程相关概念
3.网络字节顺序 字节顺序是指占内存多于一个字节的数据在内存中的存
放顺序。通常有两种顺序,一种是低字节数据存放在内 存低地址处,高字节数据存放在内存高地址处;另一种 是高字节数据存放在低地址处,低字节数据存放在高地 址处。 由于不同的计算机存放多字节值的顺序不同,为保证数 据的正确性,在网络协议中须指定网络字节顺序。 TCP/IP协议使用16位整数和32位整数的高位先存(即起 始地址存放高位字节)格式,它们均被含在协议头文件 中。在网络中不同主机进行通信时,要同一采用网络字 节顺序。
➢ TCP提供可靠性,实现了丢失重传,RTT(客户到服务器往返所 花时间,round-trip time)的动态估算。当TCP向另一端发送数据 时,它要求对端返回一个确认。如果确认没有收到,TCP自动重 传数据并等待更长时间。在数次重传失败之后,TCP才放弃。
➢ TCP通过给所发送数据的每一个段管理一个序列号进行排序。以 便于接收端按这个序号对数据进行排序。
其他特 VIP专享精彩活动

VIP专属身份标识
开通VIP后可以享受不定期的VIP随时随地彰显尊贵身份。
专属客服
VIP专属客服,第一时间解决你的问题。专属客服Q全部权益:1.海量精选书免费读2.热门好书抢先看3.独家精品资源4.VIP专属身份标识5.全站去广告6.名
相关文档
最新文档