• 网络协议五层模型和socket


    网络协议五层模型

    一、物理层:这一层是用来发送电信号的。就是01101011001

    二、数据链路层:把物理层 的电信号分组,每一组都叫做一个数据报或者叫做数据帧,每一个数据包的内容为报头和数据两部分,他的头有固定的18个字节组成,6个是发送者地址,6个是接受者地址,6个是数据类型,而且这些地址都是mac地址。每个网卡都有唯一的Mac地址。广播,这层进行广播,可能会出现广播风暴。

    三、网络层:ip:ipv4:从0.0.0.0到255.255.255.255,这代表有限,于是有了ipv6.

    子网掩码:通过子网掩码和ip判断两个ip是否处于同一个网段。

    arp协议:有了对方的ip地址之后,可以通过这个协议来广播发送数据包,然后最终获取目标主机的mac地址。

    mac地址学系:mac地址和ip地址的映射表。

    四、传输层:

    tcp协议:三次握手,四次挥手。需要响应可靠

    端口号:端口范围0-65535,0-1023为系统占用端口

    dos和ddos攻击:拒绝服务供给,分布式的拒绝服务攻击(tcp的天性)

    udp协议:不需要响应,所以不可靠

    端口 -通过ip+子网掩码唯一确定一台设备 -通过ip+子网掩码唯+端口号唯一确定一个软件

    半连接池

    五、应用层:通过dns服务器,解析域名,来获得域名所对应的ip地址,向ip地址和端口号这个地址发送请求,就会访问到百度的服务器了。

    socket是一个在应用层和传输层之间的抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信

    三次握手和四次挥手

    img

    img

    socket

    实现一个简单的socket

    服务端

    import socket
    soc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    soc.bind(('139.227.13.99',8082))
    #soc.bind(('127.0.0.1',8080))
    soc.listen(5)
    sock,addr=soc.accept()
    data=sock.recv(1024)
    data=bytes.decode(data)
    data=data.upper()
    print(type(data))
    sock.send(bytes(data,encoding='utf-8'))
    
    sock.close()
    
    soc.close()
    

    服务端

    import socket
    soc=socket.socket()
    soc.connect(('192.168.11.102',8082))
    msg='hello world'
    
    soc.send(bytes(msg,encoding='utf-8'))
    data=soc.recv(1024)
    print(data)
    soc.close()
    

    妈的我不是学python的吗,为什么在学计算机网络?

  • 相关阅读:
    [HDU1087]Super Jumping! Jumping! Jumping!<dp>
    [codeforces]Page Numbers <模拟>
    [POJ1190]生日蛋糕<DFS>
    [HDU1029]Ignatius and the Princess IV<桶 水题>
    矩阵优化
    康复式训练
    bzoj1036 [ZJOI2008]树的统计Count
    luogu3761 [TJOI2017]城市
    bzoj2282 [SDOI2011]消防
    NOI2014
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11470426.html
Copyright © 2020-2023  润新知