第七章 TCP/IP协议及应用

来源:互联网 发布:napa软件 编辑:程序博客网 时间:2024/05/18 12:34

主要内容:

  1. 协议栈
  2. IP地址
  3. TCP/IP协议
  4. IPv6
一、TCP/IP协议栈


二、IP地址

IPv4




1、特殊地址
  • 网络地址,不可以用作主机地址
  • 广播地址,不可以用作主机地址
  • 回环地址
  • 公共地址
  • 内部地址

网络地址


指定网络广播地址(路由器可转发)


受限广播地址(路由器不转发)


回环地址


公共地址

IETF分别从A、B、C三类地址中取出一段地址范围保留用作内部网络地址,他们分别是:

  10.0.0.0 ~ 10.255.255.255

  172.16.0.0~ 172.31.255.255

  192.168.0.0~ 192.168.255.255

  这些地址范围是专门用来标识内部网络的,不能用来访问Internet,因为Internet上路由器不会转发目标地址在上述三个范围内的数据包。


2、 网络掩码:用于标志网络地址和主机地址的代码。
  • 不同类型的网络(A、B、C)具有不同的网络掩码
  • 255.0.0.0  255.255.0.0 255.255.255.0
  • 网络地址的获取:逻辑“与”
  • 划分网络号和主机边界
  • 对子网进行精确的划分,减小子网络空间
  • 子网掩码就是将Hostid的一部分作为网络Netid的延伸
掩码地址的格式:前N位1+后M位0=32
掩码地址“”IP地址= 对应子网的“实际网络地址”
路由特点:子网划分对外部的路由器是透明的、对子网内部的路由器是不透明的
三、TCP/IP协议
  • 网络层协议: ICMP IGMP ARP RARP
  • 传输层协议: UDP TCP 
  • 应用层协议: SMTP/POP HTTP DNS FTP…
不同层次的协议

数据帧的分用过程

1、网络层协议
  • 网络层协议格式头格式
  • ARP/RARP
  • ICMP
  • IGMP
地址解析协议(ARP/RARP)

ICMP
用于网络设备和结点之间的控制和差错报文的传输(主机之间,而不是应用之间)
  • Error message—一些网络错误信息
  • Ping—测试工具
  • Traceroute—路由跟踪
windows tracert
封装于IP数据包内部
ICMP差错报文

ICMP查询报文


IGMP
Multicast
Internet Group Management Protocol
RFC1112
类型1:多播路由器查询报文,组地址为0
类型2:主机组播报告报文,组地址为该主机加入的组播组。

2、传输层协议

TCP协议概述:
  • 面向连接
  • 连接定义:四元组(客户IP地址、客户端口号、服务器IP地址和服务器端口号);
  • 应用程序利用TCP协议进行数据传输之前,首先建立基于TCP的四元组连接;
  • 进行数据传输之前进行“握手”,双工通信。
可靠传输服务
  • TCP协议利用网络层的IP协议进行数据传输,而IP协议是一种不可靠协议。(丢包,失序),如何获得可靠性? 
  • 数据分割使之适于网络传输
  • 定时重传机制
  • 校验和
  • 重复丢弃和失序纠正
  • 流量控制
面向字节流的传送服务
 TCP协议将应用程序需要传输的数据理解为按顺序排列的二进制位,并按八位字节为基本单位,形成有序的八位字节流。发送方将数据以字节流的顺序递交给下层的TCP协议进行传输, TCP协议在组织传输时并不关心数据的结构,接收方的TCP协议将数据以相同的字节流顺序交给接收方的程序。

Connect:(socket) 
1) 请求端(通常称为客户)发送一个syn段指明客户打算连接的服务器的端口,以及初始序号;
2) 服务器发回包含服务器的初始序号的syn报文段作为应答。同时,将确认序号设置为客户的ISN+1;
3) 客户将确认序号设置为服务器的ISN+1。

关闭连接
1、建立一个连接需要三次握手,而终止一个连接要经过4次握手;
2、T C P连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭;
3、收到一个F I N只意味着在这一方向上没有数据流动,一个T C P连接在收到一个F I N后仍能发送数据。



TCP/UDP协议对比

首先,TCP是一种面向连接的协议,而UDP是无连接的协议。这其中的区别在于:
第一,TCP协议是以连接作为协议数据的最终目标的。UDP协议则是以目标端口作为协议数据的最终目标。因此,TCP的协议端口是可以复用的,UDP协议的端口在同一时间则只能为一个应用程序所用。
第二,一个连接是由两个端点构成的,并为该连接分配一定的资源(缓冲区)。UDP协议则不需要这个过程,可以直接发送和接收数据。
其次,TCP提供的是可靠的传输服务,而UDP协议提供的是不可靠的服务。使用不可靠的服务进行数据传输时,数据可能会丢失,失序,重复等。而可靠的服务能保证发送方发送的数据能原样到达接收方。
最后,TCP提供的是面向字节流的服务。应用程序只需将要传输的数据以字节流的形式提交给TCP协议,在连接的另一端,数据以同样的字节流顺序出现在接收程序中。而UDP协议的传输单位是数据块,一个数据块只能封装在一个UDP数据包中。

可靠应用需要TCP协议
TCP协议的连接建立需要一定时间,不适于实时性要求的应用
而用UDP协议具有一定丢失不敏感的应用使用UDP协议

3、应用层协议
电子邮件原理与协议
http
DNS
FTP

HTTP-Hypertext Transfer Protocol
  • 无状态协议
  • WWW的核心协议
  • 应用层
  • 1990-Rfc2616-http1.1
HTML三个主要缺点:

  1、不能适应现在越多的网络设备和应用的需要, 比如手机、PDA、信息家电都不能直接显示HTML;

  2、由于HTML代码不规范、臃肿,浏览器需要足够智能和庞大才能够正确显示HTML;

  3、数据与表现混杂, 你的页面要改变显示,就必须重新制作HTML。

XML

  XML 是一种简单、与平台无关并被广泛采用的标准。

  XML 标记用于定义数据本身的结构和数据类型,XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。

XML是web发展的趋势,XHTML是一个基于XML的置标语言, XHTML就是一个扮演着类似HTML的角色的XML,所以,本质上说,XHTML是一个过渡技术,结合了XML(有几分)的强大功能及HTML(大多 数)的简单特性。 XHTML是当前替代HTML4标记语言的标准,使用XHTML 1.0。

DNS
域名系统( D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和I P地址之间的转换及有关电子邮件的选路信息。
每个站点(如大学中的系、校园、公司或公司中的部门)保留它自己的信息数据库,并运行一个服务器程序供I n t e r n e t上的其他系统(客户程序)查询。D N S提供了允许服务器和客户程序相互通信的协议。
从应用的角度上看,对D N S的访问是通过一个地址解析器( r e s o l v e r)来完成的。在U n i x主机中,该解析器主要是通过两个库函数g e t h o s t b y n a m e()和g e t h o s t b y a d d r()来访问。

0 0