1.1网络通信概述
通过对TCP、UDP的编程学习,能够完成对实际项目需求中网络功能的开发,为了提高程序的稳定性以及效率等等,通常会使用多线程、多进程开发;根据功能需求的不同,可以利用C/S、B/S模式开发
作为嵌入式工程师,需要对整个网络通信的过程进行掌握,从一个整体的角度来开发出更加稳定、效率的网络程序。
网络通信过程分析软件:
Packet Tracer是由Cisco公司发布的一个辅助学习工具,提供了设计、配置、排除网络故障网络模拟环境,可以直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况。
1.2 通信过程(PC + switch)
1.2.1 交换机介绍
网络交换机(“又称网络交换器”),是一个扩大网络的器材,可以把更多的计算机等网络设备连接到当前的网络中。
具有性价比高、高度灵活、相对简单、易于实现等特点。
以太网技术已称为当今最重要的一种局域网组网技术,网络交换机也就成为了最普及的交换机
1.2.2 交换机功能
1.转发过滤:当一个数据帧的目的地址在MAC地址表中有映射时,他被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)
2.学习功能:以太网交换机了解每一端口相连的MAC地址,并将地址通相应的端口映射起来存放在交换机缓存的MAC地址表中
3.目前交换机还具备了一些新的功能,如对VLAN(虚拟局域网)的支持、对链路汇聚的支持,甚至有的还具有防火墙的功能
1.2.3 通信过程(PC+switch)
通过交换机可以组成一个简单的网络
举例:
每台PC必须手动设置ip、netmask
192.168.1.1/255.255.255.0
…
192.168.1.8/255.255.255.0
总结:
1.如果PC不知目标IP所对应的MAC,那么可以看出,PC会先发送ARP广播,得到对方的MAC地址后,再进行数据的传送
2.当switch第一次收到ARP广播数据,会把ARP广播数据包转发给所有端口(除来源端口);如果以后还有PC询问此IP的MAC,那么只是向目标的端口进行转发数据
3.每台PC都会有一个ARP缓存表,用来记录IP所对应的MAC
注意:ARP表不是永久的,过一段时间之后就会将没有通信的主机的IP地址以及其MAC地址从表中移除
1.3 通信过程(PC + switch + router)
1.3.1 路由器介绍
路由器(Router)又称设备网关(Gateway)是用于连接多个逻辑上分开的网络
所谓逻辑网络是代表一个单独的网络或者一个子网,当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成
具有判断网络地址和选择IP路径的功能
路由器工作在网络层,可以实现不同网段的主机之间进行通信
1.3.2 通信过程(PC+switch+router)
通过2个router,2个switch,4台PC组成的网络
总结:
1.不在同一网段的PC,需要设置默认网关才能把数据传送过去
2.通常情况下,都会把路由器设为默认网关
3.当路由器收到一个其他网段的数据包时,会根据“路由表”来决定把此数据包发送到哪个端口;路由表的设定有静态和动态方法
4.设置路由器就是设置下一跳,指定当前网段的主机与另一个网段主机通信是数据包应该交给哪个路由器
5.在windows控制端下,可通过输入命令查看路由表route print
1.4 通信过程(浏览器跨网访问Web服务器)
网络通信过程(复杂)
以PC0访问www.helloworld.com举例
配置网络设备
PC:IP、NETMASK、DFGATEWAY、DNS
ROUTER:IP、NETMASK、路由表
总结:
1.DNS服务器的作用是解析出IP
2.DFGATEWAY指定发往其他网段的数据包转发路径
3.在路由器中路由表指定数据包的“下一跳”的地址
4.公有IP、私有IP