美文网首页
第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