当前位置:文档之家› 计算机网络通信协议

计算机网络通信协议


建立TCP连接:三次握手
A B
发送SYN(seq=X) 接收SYN(seq=X) 发送SYN(seq=Y ACK=x+1) N(seq=Y ACK=x+1) 发送确认(ack=x+1) 接收确认(ACK=x+1)
• • •
主机A发送SYN给主机B:我的序号seq是X 主机B发送SYN、ACK给主机A:我的序列号seq是Y,应答号ack是X+1 主机A发送SYN、ACK给主机B:我的序列号seq是X+1,应答号ack是Y+1
常用端口号
常用端口号的使用情况
常用的应用程序协议或应用程序
FTP Telnet SMTP 端口号 UDP TCP 21 23 25
DNS
TFTP SNMP
53ቤተ መጻሕፍቲ ባይዱ
69 161
-
HTTP DHCP
RPC(远程过程调用)
-
80 67
135
端口号的使用过程
• 主机A要Telnet到主要B。主机A首先向TCP请求一个可用端口,TCP分配一个 为1088的端口号给它,主机A将目标端口号置为23。A和B通信后,B看到A过来 的端口号为23,就知道这是一个Telnet应用,它会为它创建一个Telnet会话。
– – – – – – – – – – – – 无连接 不可靠 传输报文,即用户数据报 不为报文发送提供软件级的检查,即不可靠 对接收到的报文不进行重组 不使用确认技术 不提供流量控制技术 TFTP(简洁文件传输协议) SNMP(简单网络管理协议) DHCP(动态主机控制协议) DNS(域名系统) BOOTP
TCP/IP的传输层协议
• 传输层的主要功能:
– 分割并重新组装上层提供的数据流 – 为数据流提供端到端的传输服务
• 在TCP/IP协议中,有两个传输层协议:
– 传输控制协议TCP
• TCP是一个可靠的面向连接的协议(如:打电话的双方在正式 通话之前都会说“喂”,确定对方在线以后才开始通话。会话 结束时都要说“再见”,然后才挂电话。)
– 使用动态绑定
• 如果一个应用程序的会话没有涉及到特殊端口号,那么系统将 在一个特定的取值范围内随机为应用程序分配一个端口号。在 应用程序进行通信之前,如果不知道对方的端口号,就必须发 送请求以获得对方的端口号。
TCP/IP的传输层协议
• 常有端口号介绍:
– 小于255的端口号用于公共应用 – 255~1023是特定供应商应用程序的注册端口号 – 高于1023的端口号未作规定
多路分解
多路分解
应用层
进程1
进程2
进程3
传输层
基于端口分解
网际层
IP数据报
TCP/IP的传输层协议
• 在主机发送应用程序的数据之前,都必须确认端 口号,如何分配这些端口号呢?
– 使用中央管理机构统一分配的端口号
• 应用程序开发者都默认在RFC1700中定义的特殊端口号,在 进行软件设计时,都要遵从RFC1700中定义的规则,不能随 便使用已定义的端口号。如:任何telnet应用中的会话都要用 标准端口号23。
FTP数据连接主动模式和被动模式
• 主动模式是从服务器端向客户端发起连接
客户端 请求建立控制连接 接受请求 FTP服务器 Port:21
控制 连接
我打开了9999端口,你来连接我 好的,建立连接 FTP的主动模式 Port:20 数据 连接
FTP数据连接主动模式和被动模式
• 被动模式是客户端向服务器发起连接
TFTP
• TFTP是基于UDP的应用 • 特点: 用于小文件传输 对内存和处理器要求很低,速度快 不具备FTP的许多功能,它只能从文件服务器上 获得或写入文件,不能列出目录,也不能进行认 证。 • 应用实例: 使用TFTP服务器来备份或恢复Cisco路由器、 Catalyst交换机的IOS镜像和配置文件
• 使用UDP的协议有:
UDP头格式
• UDP数据域的头格式
源端口 报文长度 数据 目标端口 校验和
• UDP数据域的头格式描述
名称 源端口(Source Port) 目的端口(Desination Port) 报文长度(HLEN) 校验和(Checksum) 数据(Data) 调用的端口号 被调用的端口号 记录UDP数据包中的八位组数目,它包括UDP头及UDP数据的长度。 最小值为8(UDP数据部分长度为0时) 头标和数据域计算的校验和,这一项是可选的,为的是在高可靠性 的网络上尽量减少开销 上层协议的数据 描述
客户端 请求建立控制连接 接受请求 FTP服务器 Port:21
控制 连接
我打开了9999端口,你来连接我 好的,建立连接 Port:9999 数据 连接
FTP的被动模式
FTP数据连接主动模式和被动模式
• 当进行FTP连接时,IE通常被设置为被动模式, 而FTP客户端软件(如:FlashFXP、cutFTP等) 一般为主动模式。如果服务器和客户端之间存在 防火墙,主动模式经常会引起一些麻烦。如:客 户端位于防火墙之后,通常防火墙允许所有内部 向外部连接通过,但是对于外部访问内部发起的 连接却有很多限制。在这种情况下,客户端可以 正常地和服务器建立控制连接,而如果使用主动 模式的数据连接,一些数据传输命令就很难成功 运行,因为防火墙会阻塞从服务器向客户发起的 数据传输连接。因此在使用主动模式的FTP数据 连接时,防火墙上的配置会比较麻烦。
• • • • •
HTTP
• HTTP是一个应用层的、面向对象的协议,它 适用于分布式超媒体信息系统。WWW服务 器使用的主要协议就是HTTP
WEB服务器 超文本链接 WEB服务器 超文本链接 FTP服务器
TCP端口80 TCP端口80
TCP端口23
WEB客户机
FTP
• FTP是一个用于简化IP网络上系统之间文件 传送的协议。采用FTP协议,用户可以高效 地从Internet上的FTP服务器下载大量的数 据文件,以达到资源共享和传递信息的目的。 • 一个FTP站点可以是公用的、私有的、或者 两者兼有之,用户可以为FTP账号定义权限, 让它们可以访问整个FTP服务的目录结构, 或者只是特定的区域。

TCP数据域的头格式描述
名称 源端口 目的端口 序号 应答号 头长度 保留 编码位 窗口 校验和 紧急 可选项 数据 调用的端口号 被调用的端口号 确保数据到达序列正确的编号 期望的下一个TCP数据段 以32位字为单位的报头长度 置为0 开始、终止会话之类的控制功能 用来控制流量 头标和数据域计算的校验和 指示紧急据的末端 当前定义项:TCP段的最大值 上层协议的数据 描述
FTP服务的主动模式和被动模式
• FTP包含两种连接模式:控制连接和数据连接 • 控制连接
用于传递客户端的命令和服务器端对命令的响应,它 使用服务器的21端口
• 数据连接
数据连接用于传输文件和其他数据,如目录列表等。 这种连接在需要数据传输时建立,而一旦数据传输完毕就 关闭,每次使用的端口也不一定相同。而且,数据连接既 可能是客户端发起的,也可以是服务器端发起的。
TCP/IP的传输层协议
• 问题: • 当在windows xp中同时运行多个网络应用程序时, 每个程序都会产生自己的数据流,传输层用什么 方法区分不同应用程序的数据流呢? • 在数据流被分段以后,传输层依靠什么来重新组 装这些数据段呢? • 如果某个数据段在传输过程中丢失了或重复了, 可靠的传输协议依据什么去要求重传这些数据或 丢弃多余的数据呢?
– 用户数据报协议UDP
• UDP是不可靠的或非连接的协议(如:寄明信片,寄出去了, 但不管对方是否收到。)
TCP/IP的传输层协议
• 端口号:
– 每个应用程序都会产生自己的数据流,这些数 据流可以把目标主机上相应的服务程序看作自 己的目的地。对于传输层来说,它只需要知道 目标主要上的哪个服务程序来响应这个应用程 序,而不需要知道这个服务程序具体是干什么 的。因此,传输层使用一个抽象的端口标识这 些应用程序和服务程序。
DNS
• 域名管理系统DNS是一台域名解析服务器 • 在互联网中通常用域名来代替难记的IP地址 以定位计算机和服务。 • DNS服务器中包含了域名和相应的IP地址 映射。 • DNS作用是把域名转换成网络可以识别的 IP地址。 • 在windows中可以使用nslookup命令查询对 应某个域名的IP地址。
关闭TCP连接:改进的三次握手
• 对于一个已经建立的连接,TCP使用改进的三次握手来结束通话(使用一个带有FIN (finish)附加标记的报文段。)
A
应用程序关闭连接
B
通知自己的应用程序: 对方要求关闭连接应 用程序关闭连接
发送FIN(seq=X)
发送ACK(ACK=x+1) 发送FIN(seq=Y),ACK(ACK=x+1)
发送确认(ack=x+1) 接收确认(ACK=x+1)
• •
• •
当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文 段 主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认 ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK为了防止在这段时间内,对 方重传FIN报文段) 主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A发送第二个FIN报文段 主机A收到第二个FIN报文段后,向主机B发送一个ACK表示连接彻底关闭
我要Telnet B,请 给我一个源端口号 ① A ② 给你1088端口 ③ Sport Dport TCP

目标端口为23,它发 给我的是Telnet应用
B
创建telnet会话 本地端口:23 远程端口:1088
相关主题