Part 10.网络编程--网络通信过程

(一)集线器组网

集线器:(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。发生在物理层。

集线器工作的时候,如果局域网中的一台电脑要发送消息,则局域网内的所有电脑都可以接收到这个消息,安全性较差,而且每一次只能有一个发送,只有这个发送完毕其他电脑才能再发送,这称为半双工模式。

详细通信过程是这种:假如计算机1要将一条信息发送给计算机8。当计算机1的网卡将信息通过双绞线送到集线器上时,集线器并不会直接将信息送给计算机8,它会将信息进行“广播”--将信息同一时候发送给8个port,当8个port上的计算机接收到这条广播信息时,会对信息进行检查,假设发现该信息是发给自己的,则接收,否则不予理睬。由于该信息是计算机1发给计算机8的,因此终于计算机8会接收该信息,而其他7台电脑看完信息后,会由于信息不是自己的而不接收该信息。

因为集线器在一个时钟周期中仅仅能传输一组信息。假设一台集线器连接的机器数目较多,而且多台机器常常须要同一时候通信时,将导致集线器的工作效率非常差,如发生信息阻塞、碰撞等。 

(二)交换机组网

交换机:(Switcher)交换机也叫交换式集线器。它通过对信息进行又一次生成,并经过内部处理后转发至指定port,具备自己主动寻址能力和交换作用,因为交换机依据所传递信息包的目的地址。将每一信息包独立地从源port送至目的port。避免了和其它port发生碰撞。广义的交换机就是一种在通信系统中完毕信息交换功能的设备。 

详细通信过程是:

集线器是采用共享工作模式的代表,假设把集线器比作一个邮递员,那么这个邮递员是个不认识字的“傻瓜”--要他去送信,他不知道直接依据信件上的地址将信件送给收信人。仅仅会拿着信分发给全部的人,然后让接收的人依据地址信息来推断是不是自己的! 而交换机则是一个“聪明”的邮递员--交换机处理port会查找内存中的地址对比表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个port上,然后迅速将数据包传送到目的port。

如果PC不知目标IP所对应的的MAC,那么可以看出,pc会先发送arp广播得到对方的MAC然后,在进行数据的传送,交换机会“学习”新的地址,并把它加入入内部地址表中。

可见,交换机在收到某个网卡发过来的“信件”时,会依据上面的地址信息,以及自己掌握的“常住居民户口簿”高速将信件送到收信人的手中。万一收信人的地址不在“户口簿”上,交换机才会像集线器一样将信分发给全部的人,然后从中找到收信人。而找到收信人之后。交换机会立马将这个人的信息登记到“户口簿”上,这样以后再为该客户服务时。就能够迅速将信件送达了。

当交换机上的两个port在通信时,因为它们之间的通道是相对独立的,因此它们能够实现全双工通信

(三)路由器组网

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络。所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。

  • 不在同一网段的pc,需要设置默认网关才能把数据传送过去 通常情况下,都会把路由器设为默认网关
  • 当路由器收到一个其它网段的数据包时,会根据“路由表”来决定,把此数据包发送到哪个端口;路由表的设定有静态和动态方法
  • 每经过一次路由器,那么TTL值就会减一

我们通过pc+交换机+路由器三者即组成一个可在不同网络号下进行通信的网络:

(四)交换机,路由器,服务器组网

这个组网里面,左边为两台pc器,用作client;中间以交换机和路由器相连;右边是两台服务器,一台为web服务器,一台为DNS服务器。

下面为其ip配置:

 

假设我们访问www.baidu.com,其中的流程即为下图:

 

  • DNS服务器:DNS服务器用来解析出IP(类似电话簿)。
  • DFGATEWAY(默认网关):用默认网关的意思是一台主机如果找不到可用的网关即ip不在同一网段中,就把数据包发给默认指定的网关,由这个网关来处理数据包。
  • 路由表:在路由器中路由表指定数据包的”下一跳”的地址。

 

(五)tcp三次握手

TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如下图所示。

 

(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

 确认号:其数值等于发送方的发送序号 +1(即接收方期望接收的下一个序列号)。

 

(六)tcp四次挥手

关闭连接:

 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

 TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。 

TCP采用四次挥手关闭连接如图2所示。

 

转载于:https://www.cnblogs.com/boru-computer/p/9801242.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值