运输层
为相互通信的应用进程提供通信,端口和套接字,UDP,TCP
主机协议栈才有的运输层功能 不同主机之间不同应用进程之间用同一个运输协议通信,但是可以将进程区分出来交付给确定那个的应用。应用进程之间的端到端的逻辑通信。 网络层为主机之间提供通信。IP数据报只对包头检查,所以运输层还将对报文进行差错检查 同等传输。采用TCP时,尽管网络层是不可靠的,但是尽量提供一个逻辑上的可靠服务,UDP为不可靠。TCP提供面向链接,传输数据时先建立链接,不提供广播和多播的一对一,增大很多的开销:确认,流量控制,计时器以及链接管理。(DNS,TFTP,RIP,DHCP,SNMP,NFP,IP电话,IGMP)UDP (SMTP,TELNET,HTTP,FTP)TCP
运输层的端口号:将报文交付给端口,然后由TCP/UDP协议完成工作,源端口和目的端口。16位端口号:服务器端口号和客户端口号。
UDP只增加一点点功能:复用和分用,及差错检测。特点:无链接的,最大能力交付,面向报文的,没有拥塞控制,首部开销很小,一对一多,多对一多,UDP首部和应用层报文作为IP数据报的数据部分
UDP首部:伪首部(4源IP地址+4目的IP地址+1+1+2UDP长度)+2 源端口+2目的端口+2长度+2校验和
伪首部的作用是为了作校验和,校验和是校验所有数据(首部和数据部分) 差错检测能力就是这个了
TCP:特点:面向运输层的协议,每一条TCP链接只有两个端点,只能是点对点的,可靠的交付,提供全双工通信,面向字节流,TCP发送报文的方式也不同?TCP链接的端点是什么,不是主机的IP地址,不是应用端口号,而是套接字或者叫做插口。套接字就是IP地址加上端口号 组合(192.123.21.2:80)这种。TCP链接是两个套接字{socket1,socket2}
可靠传输原理:TCP发送的报文是交给网路层传输的,而网络层是不可靠的,TCP采用确认重传机制(协议重传,报告出错等)
停止等待协议:发送一个分组,等待对方确认,收到确认后再发送下一个,超时重传,发送方超时计时器,发送方保留副本,以便超时重传,接受方也是,以便接受重复的报文,并且都进行编号,确认丢失(什么也不做)和确认迟到(发送报告)(发送方接收到信号,不返回啥)——自动重传请求ARQ。优点是简单,缺点信道利用率太低,一个个的传很慢。
连续的ARQ和滑动窗口协议:发送窗口,就收方返回累积确认。
TCP报文:2 源端口 2 目的端口 4 序号报文开始序号 4 确认序号 确认序号最后一个序号加一 4位 数据偏移 数据开始的位置 6 位 保留 (紧急URG 确认AKG 推送PSH 复位RST 同步SYN 终止FINis)2 窗口 指明发送方发送数据的依据 2 检验和 检验 数据和头部数据的正确性 伪首部 2 紧急指针 URG=1有用 指出紧急字段在报文后的位置 40字节的选项
TCP可靠传输的实现: 以字节为单位的滑动窗口,发送窗口的内容都可传送,在收到确定切前先保留以便重传,当送窗口不能移动的原因:没有收到新的确定,接受方的窗口缩小了。 P1 小于已经发送并确认的部分 P2大于 允许发送但是没有发送 P3 大于不允许发送 接受方,返回确定号(之前的序号的数据都收到) 发送方:等待确认,移动窗口,发送窗口內的内容,超时重传。都有缓存下内容,发送方保留,接受方缓存,确定对方接受发送后交付删除。
超时重传时间的选择 采用一种自适应的算法,记录一个报文发出的时间,和确定时间,这两个时间就是RTT往返时间,每次得到一个就RTT就进行计算。
选择确认SACK: 数据块的丢失
TCP的流量控制:发送的方的输率总是低于等于接收方的输率,流量控制是控制这个,滑动窗口机制控制流量
TCP拥塞控制:资源需求大于可用资源时网络性能变坏,拥塞 方法:慢开始,快重传和快恢复
TCP的运输链接管理:建立链接:三次握手:发送方发送请求建立链接,接受方接受到信息发送给发送方说接受到了,发送方接受到并发送一个信息我知道了。 然后可以传输数据了。 释放链接:双方都可以,
应用层
解决多个主机之间不同应用之间的通信
DNS域名解析系统 万维网和HTTP协议 SMTP和POP3电子邮件 DHCP动态分配IP地址 网络管理三个部分(SNMP,SMI,MIB) 系统调用和编程接口
DNS:将网站的IP地址与网站地址进行相互转化的服务器,是分布式的系统,即使一个坏了其他也可以工作,域名结构:树状,从左往右是顶级域名,二级,三级。域名可以分区然后成为服务器,一个域 有很度分区的真实服务器。
FTP:文件传输协议:联机访问,多个程序对文件进行存取。透明存取,就像在本地访问一样,不对应用程序作任何改变。网络文件系统NFS。使用TCP。C/S方式。
TFTP简单文件传输协议:C/S方式。UDP。
TELNET远程终端协议:C/S方式。现在用的很少了。NVT网络虚拟终端。
WWW 万维网 :分布式的超媒体系统,超文本系统的扩充。是富含超链接的系统,指向图片,文本,视频。使用HTTP协议,HTML语言,URL定位符标记各种资源,<协议>://<主机>:<端口>/<路径> 默认端口号80我们使用都省略了。http://www.baidu.com http://www.tsinghua.edu.cn/chn/yszx/index.htm
HTTP定义了浏览器怎么向万维网服务器发送文档请求,和服务器的回应。TCP。无状态的,第二次访问不需要再次TCP
1 浏览器分析URL 2 DNS解析IP地址 3 浏览器链接服务器 4 GET文件
5 服务器发送文件index.htm 6 释放链接
代理服务器;万维网高速缓存,将最近的浏览的页面缓存。 可以在客户端,服务器端,和中间。两类报文:请求和响应
HTML语言:超文本语言 XML,可扩展语言。CSS层叠样式表
万维网的检索:搜索引擎:全文搜索和分类目录搜索。
电子邮件:用户代理(PC中的一个程序) 邮件服务器(发送方,接受方) 邮件发送协议SMTP 邮件读取协议POP3,IMAP
基于万维网的电子邮件:SMTP , IMAP HTTP , 扩充的MIME 可以传输可执行文件和其他的二进制文件。
DHCP动态主机IP配置协议:即插即用的自动IP分配服务器
SNMP 网络管理协议:对所有硬件,软件,网络资源的管理。主机,集线器,路由器上运行这管理协议进行管理 SNMPv3 组成:SNMP本身,管理信息结构SMI ,管理信息库MIB。
系统调用和应用编程接口:应用程序和操作系统之间传递权。对程序员来说就是接口。API 套接字接口,
1