三、链接网络的另外一种途径是使用网桥,网桥是在链路上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个局域网组合在一块儿,这样对上层来讲就好像是一个局域网。
一、TCP/IP对IP提供不可靠的、无链接的数据报传送服务。
不可靠:它不能保证IP数据能成功到达目的地。IP仅提供尽力而为的传输服务,若是发生某种错误,IP有一个简单的错误处理算法:丢弃该数据报,而后发送ICMP消息报给信源端。
无链接:IP并不维护任何关于后续数据报的状态信息,每一个数据报的处理都是相互独立的,也就是说,IP数据报能够不按发送顺序接收。
二、IP数据报
TTL:time-to-live,生存时间字段设置了数据报能够通过的最多路由器数。它指定了数据报的生存时间,TTL的初始值由源主机设置,一旦通过一个处理它的路由器,它的值就减去1,当该字段的值为0时,数据报就丢弃,并发送ICMP报文通知源主机。
三、IP路由选择
若是主机与源主机直接相连或都在共享网络上(以太网或令牌环网),那么IP数据报就直接发送到目的主机上,不然,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。
四、路由表中每一项都包含下面这些信息:
- 目的地址:它既能够是完整的主机地址,也能够是一个网络地址,由该表中的标志字段来指定。
- 下一跳路由器的IP地址,或者有直接链接的网络IP地址
- 标志:其中一个标志指明目的IP地址是网络地址仍是主机地址,另外一个标志指明下一站路由器是否为真正的下一站路由器
- 为数据报的传输指定一个网路接口
五、IP路由选择主要完成如下这些功能:
1)搜索路由表,寻找能与目的IP地址彻底匹配的表目(网络号和主机号都要匹配)。若是找到,则把报文发送给该表目指定的下一站路由器或直接链接的网络接口
2)搜索路由表,寻找能与目的网络号相匹配的表目,若是找到,则把报文发送给该表目指定的下一站路由器或直接链接的网络接口
3)搜索路由表,寻找标为”默认“的表目,若是找到,则把报文发送给该表目指定的下一站路由器 。
若是上面这些步骤都没有成功,那么该数据报就不能被传送。
六、子网寻址
子网编制不是把IP地址当作是由单纯的一个网络号和一个主机号组成,而是把主机号再分红一个子网号和一个主机号。
七、子网掩码
任何主机在引导时进行的部分配置中是指定主机IP地址,除了IP地址之外,主机还须要知道有多少比特用于子网号及多少比特用于主机号,这是在引导过程当中经过子网掩码来肯定的,这个掩码是一个32bit的值,其中值为1的比特留给网络号和子网号。
八、当一台主机把以太网数据帧发送到位于同一局域网上的另外一台主机时,是根据48bit的以太网地址来肯定目的接口的。地址解析协议为这两种不一样的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址。
4、运输层
一、TCP链接的三次握手过程:算法
- 请求端发送一个SYN段(同步序列编号)指明客户端打算链接的服务器端的端口,以及初始序号seq
- 服务器端返回包含服务器的初始序号的SYN报文段做为应答,同时将序号ack设置为客户端的seq+1做为对客户端SYN报文段进行确认
- 客户端将确认序号ack设置为服务器端的seq+1做为对服务器端的SYN报文段进行确认
示意图以下:数据库

seq:本报文段所发送数据的第一个字节的序号服务器
ack:指望收到对方下一个报文段的第一个数据的字节序号网络
确认ACK:仅当ACK=1时确认号字段才有效,当ACK=0时,确认号无效并发
同步SYN:在链接创建时,用来同步序号,当SYN=13而ACK=0时,代表这是一个链接请求报文段,对方若赞成创建链接,则应在响应的报文段中使SYN=1,所以SYN=1表示这是一个链接请求或者链接接受报文测试
终止FIN:用来释放一个链接,当FIN=1时,代表此报文段的发送方的数据已经发送完毕,并要求释放运输链接blog
二、TCP的链接释放过程(四次挥手):接口
- 链接释放时,首先由一端发送终止链接,向服务器端一个FIN,用来关闭从客户端到服务器端的数据传送。
- 当服务器端收到这个FIN后,它发回一个ACK,确认序号ack=收到的序号u+1,而后服务器端就进入关闭状态,从客户端到服务器端的链接就释放了。可是若是服务器端要发送数据,客户端仍要接收
- 当客户端收到服务器端的确认后,就进入终止状态2,此时服务器端发送的FIN=1,seq=w,ack仍然为u+1
- 客户端在收到服务器端的链接释放报文段后,必须对此发送确认,将ACK置为1,确认序号ack=w+1,本身序号seq=u+1
- 在通过时间等待计时器设置的时间2MSL后,客户端才进入关闭状态(有两个缘由:一是为了保证A发送的最后一个ACK报文段可以到达B,二是使得本链接持续的时间内所产生的报文段都从网络消失)
三、TCP可靠传输的实现路由
以字节为单位的滑动窗口同步
超时重传
选择确认SACK