python——网络通信

2018-05-22  本文已影响108人  Jalynn葸
TFTP
wireshark
网络编程中的广播

广播只能在upd模型中使用,TCP不能广播
以广播的形式发送数据到本网络中的所有电脑中
udp:用户数据报协议,不稳定
tcp:传输控制协议,稳定,相对于udp要慢一点

image.png
服务器代码的编写

1、socket创建一个套接字
2、bind绑定ip和port
3、listen使套接字变成为可以被动链接
4、accept等待客户端的链接
5、recv/send接收发送数据

from socket import * 

serverSocket = socket(AF_INET,SOCK_STREAM)

serverSocket.bind("",8899)

serverSocket.listen(5)

clientInfo,clientSocket = serverSocket.accept()
recvData = clientSocket.recv(1024)

print("%s:%s"%(str(clientInfo),recvData))

clientSocket.close()
serverSocket.close()
客户端代码的编写

tcp客户端已经连接好了服务器,所以在以后的数据发送中,不需要填写对方的ip和port
udp在发送数据的时候,因为之前没有链接,所以每次发送中都要填写接受方的ip和port

from socket import * 
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect("192.168.119.153",8989)
clientSocket.send("hahah".encode("gb2312"))
recvData = clientSocket.recv(1024)
print("%s"%recvData)
clientSocket.close()

网络号 = IP地址和网络掩码按位与操作
hub:集线器

image.png
arp——>根据IP获取电脑上的网卡号,就是mac地址
icmp——>ping一个电脑,得知道IP和网卡号
跨网之前不可以通信
路由器:链接不同的网络,使他们能够通信
mac地址在两个设备之间通信时在变化,而IP地址在整个通信过程中都不会发生任何变化。
IP:标记逻辑上的地址
mac:标记实际地址,转发数据时的设备地址

DNS:解析域名

访问百度的过程?

1、先要解析处baidu.com对应的ip地址
1、先知道默认网关的mac地址
1、使用arp获取默认网关的mac地址
2、组织数据发送给默认网关(ip还是dns服务器的
ip,但是mac地址是默认网关的mac地址)
3、默认网关拥有转发数据的能力,把数据转发给 路由器
4、路由器根据自己的路由协议,来选择一个合适的较快的路径转发数据给目的网关
5、目的网关(dns服务器所在的网关。把数据转发给dns服务器)
6、dns服务器查询解析处baidu.com对应的IP地
址,并发它原路返回给请求这个域名的client
2、得到了baidu.com对应的IP地址之后,会发送tcp的3次握手,进行链接
3、使用http协议发送请求数据给web服务器
4、web服务器收到数据之后,通过查询自己服务器得到相应的结果,就会原路返回给浏览器
5、浏览器接受数据后,通过浏览器自己的渲染功能来显示这个网页
6、浏览器关闭tcp,即四次握手

完成整个访问过程
TTL:经过一个路由器的个数

上一篇下一篇

猜你喜欢

热点阅读