美文网首页
第3节网络编程

第3节网络编程

作者: 冰_Angus | 来源:发表于2017-12-06 10:44 被阅读0次

    TCP/IP族 是一个协议族 不是两个协议

    链路层 网络层 传输层 应用层

    物理层 数据链路层 网络层 传输层 会话层表示层 应用层

    端口

    80端口分配给HTTP服务

    21端口分配给FTP服务

    知名端口 0-1023

    动态端口 1024-65535

    查看当前端口  # netstat -an

    IP地址

    ABC类地址  0 10 110  32位

    D类地址用于多点广播 用于一次寻址一组计算机

    私有IP 

    10.0.0.0  10.255.255.255

    172.16.0.0 172.31.255.255

    192.168.0.0 -192.168.255.255

    127.0.0.01-127.255.255.255 用于回路测试

    套接字

    函数 socket.socket 创建⼀个 socket,返回该 socket 的描述符,该函数带有两个参数:

    Address Family:可以选择 AF_INET(⽤于 Internet 进程间通信) 或者AF_UNIX(⽤于同⼀台机器进程间通信),实际⼯作中常⽤AF_INET

    Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要⽤于TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要⽤于 UDP 协议)

    Python3中  sendto()中 内容前面要加b  例如 sentto (b"haha",sendAddr)也就是 .encode("utf-8") 解码用 .encode("gb2312")

    TFTP 

    cmd_buf = struct.pack("!H8sb5sb",1,"test.jpg",0,"octet",0)  

    网络协议部分

    icmp  ping命令时使用

    arp  根据ip找mac

    rarp 根据mac找ip

    tcp三次握手 必考

    四次回首  先 C  后 S S  C接到最后一个S  发送确认  总共四次

    DNS服务的底层为UDP

    DHCP  自动分配IP  

    TTL  路由器剩余转发次数

    MSL  最长存活时间

    计算密集型用多进程

    io密集型用多线程或者协程

    greenlet  = yield  类似c中的goto  假装出两条线程   

    greenlet升级版: gevent  遇到耗时操作  自动切换 money.patch_all()写在最前面

    相关文章

      网友评论

          本文标题:第3节网络编程

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