美文网首页
python——网络通信

python——网络通信

作者: Jalynn葸 | 来源:发表于2018-05-22 17:24 被阅读108次
    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:经过一个路由器的个数

    相关文章

      网友评论

          本文标题:python——网络通信

          本文链接:https://www.haomeiwen.com/subject/qgtndftx.html