网络通讯过程与TCP编程

Packet Tracer 是由Cisco(著名网络公司,思科)公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。

从广义上来看,网络交换机分为两种:广域网交换机和局域网交换机。

广域网交换机主要应用于电信领域,提供通信用的基础平台。而局域网交换机则应用于局域网络,用于连接终端设备,如PC机及网络打印机等。

电脑之间通过网线传送的信号是交流高频信号,电压不超过3伏,带不动任何负载,网线最大的可承受电压为15V。家用网线是双绞线,一根线中有8根细线,由绝缘层等包裹,网线中的电压只有3V,其中峰值电压也只有10V左右,最大可承受15V左右电压。
按颜色来说:橙白、橙两条用于发送;绿白、绿两条用于接收;其他颜色的是双向线。

交换机(switch)的作用:

1)转发过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播帧则转发至所有端口)
2)学习功能(MAC地址表):以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中
Mac地址也称物理地址,也叫网卡序列号
当switch(交换机)第一次收到arp广播数据,会把arp广播数据包转发给所有端口(除来源端口);如果以后还有pc询问此IP的MAC,那么直接向目标的端口进行转发数据;
物理地址有6组数据,每组是有两个十六进制表示的,一共有12个前三组表示厂商地址,后三组表示,厂商生产的网卡的编号
ping采用的协议是ICMP

OSI是Open System Interconnection的缩写,意为开放式系统互联OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
 ARP 命令arp -a查看mac地址信息和删除记录arp -d 

 arp攻击

如果我把很多的ip地址对应的是同一个mac地址,那么这个电脑很快就处理不过来。原因是交换机发数据的时候根据mac地址发数据,这个攻击方式,360都不好用,只有专门的arp专业防火墙才能防住
arp -a显示 动态和静态
动态的是说过一定时间如果这个mac地址没有用到过,就会被删掉;静态的会被永久保留
ARP协议:通个这个协议可以根据ip地址找到mac地址,他会发广播,如果是要接收的电脑,就接收,把地址封装返回,否则把包丢掉。
RARP协议:通过这个协议可以根据mac地址找ip地址;
ICMP协议:ping的时候使用的协议;
STP协议是一个二层的链路管理协议,它在提供链路冗余的同时防止网络产生环路,与 VLAN配合可以提供链路负载均衡。

路由器路由是将不同网段的电脑ip连在一起

1)给你确定一条路径的设备,路由最核心功能连接不同的网络。
2)路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络。所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
同一个路由器可以有不同的网段

mac地址:在两个设备通讯的过程中变化是在实际转发数据时的每个节点中具体的设备地址;
ip地址:在整个通信过程中都不会任何变化;标记是一个逻辑地址
netmask(子网掩码):和ip地址一起来确定网络号
默认网关:发送的ip不在同一个网段内,那么会把这个数据转发给默认网关
1)不在同一网段的pc,需要设置默认网关才能把数据传送过去 通常情况下,都会把路由器默认网关
2)当路由器收到一个其它网段的数据包时,会根据“路由表”来决定,把此数据包发送到哪个端口;路由表的设定有静态和动态方法。
3)每经过一次路由器,那么TTL值就会减一、、
在dos控制端下,可通过输入命令查看路由表:route print

域名

如果域名绑定的服务器的ip地址,那么我们不需要访问ip地址了,因为ip地址不好记,以后就直接访问域名就行了
 DNS(域名系统)服务器的作用记录域名和服务器的ip地址的对应关系

DHCP(动态主机配置协议)

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
插上电脑后,发现没有ip的电脑,并且分配ip给该电脑。
根据ip.addr抓取数据  wireshark抓网取络数据包
http://ip.chinaz.com/ 该地址可以查看某个域名对应的ip地址
例如:要查看和192.168.28.16的数据交互: ip.addr == 192.168.28.16
还会显示最近的过滤ip.addr == 192.168.28.16 or ip.addr == 192.168.27.12
根据udp.port例如要查看和2425端口(飞秋)的数据交互:udp.port == 2425
当前主流软件产品模式 Browser浏览器 Server服务器 Client客户端
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
C/S结构(Client/Server,客户端/服务器模式)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

TFTP协议介绍

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,它基于UDP协议而实现。
特点:简单、占用资源小、适合传递小文件、适合在局域网进行传递
TFTP服务器默认监听69号端口、基于UDP实现。服务器分多次发送,每次会从文件中读取512个字节的数据发送过来。
操作码 功能
1 读请求,即下载
2 写请求,即上传
3 表示数据包,即DATA
4 确认码,即ACK
5 错误
网络传输字符串要进行utf-8编码  "字符串".encode("utf-8")  解码decode("utf-8")
pack打包的就默认是tftb格式文件
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议
它的可靠性体现在:3次握手建立连接,滑动窗口机制,一定的拥塞避免算法,流量控制,以及一定的超时重传机制。
TCP提供可靠,稳定的传输(三次握手,数据确认机制,重传机制,拥塞控制),由于这些导致TCP传输效率低,速度慢(各种机制+每次连接都会消耗CPU,内存等资源)
tcp->传输控制协议
udp->用户数据报协议
tcp和udp区别
1)TCP面向连接---UDP面向无连接
2)TCP首部20字节---UDP首部8字节
3)TCP只能点对点通信---UDP可以实现一对一,一对多,多对一,多对多通信
4)TCP使用字节流传输---UDP使用报文传输
5)TCP提供可靠,稳定的传输(三次握手,数据确认机制,重传机制,拥塞控制),由于这些导致TCP传输效率低,速度慢(各种机制+每次连接都会消耗CPU,内存等资源)---UDP提供不可靠,不稳定的传输(网络不好容易丢包),但传输效率高,速度快


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

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据 

TCP采用四次挥手关闭连接

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。
tcp的2MSL问题
MSL为最大报文段生存时间,一般为1~2分钟或者30秒。
等待2MSL时间主要目的是怕最后一个 ACK包对方没收到。在TIME_WAIT状态 时两端的端口不能使用,要等到2MSL时间结束才可继续使用。当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃。不过在实际应用中可以通过设置 SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。
tcp长连接和短连接
tcp短链接:多次三次握手连接多次四次挥手关闭,最终才把数据传递完成;
tcp长连接:经历过一次三次握手连接好后,不断开,一直传递数据,比如说播放网络视频,一直给你传递数据。登录网络游戏,登录126邮箱,Android客户端的推送系统
优缺点:
tcp长连接占资源,适合需要持续连接传递数据的场景
tcp短链接,占服务器资源少,但是需要频繁连接和断开,如果需要持续传递数,可以采用长连接。

listen的队列长度

使用socket创建的套接字默认的属性是主动的,使用listen将其变为被动的,这样就可以接收别人的链接了,
tcpSerSocket.listen(connNum)
listen中的connNum表示已经建立链接和半链接的总数,如果当前已建立链接数和半链接数以达到设定值,那么新客户端就不会connect成功,而是等待服务器。

dns服务器被劫持

有些流氓的域名服务器故意更改一些域名的解析结果,
将用户引向一个错误的目标地址。这就叫作 DNS 劫持,主要用来阻止用户访问某些特定的网站,或者是将用户引导到广告页面。

dns欺骗

DNS 欺骗简单来说就是用一个假的 DNS 应答来欺骗用户计算机,让其相信这个假的地址,并且抛弃真正的 DNS 应答。

猜你喜欢

转载自blog.csdn.net/xiaoming0018/article/details/80353463