python网络编程
软件开发架构:
C/S架构: client与server
B/S架构: browser与server 优点:统一了应用的接口(统一入口)
IP协议:规定网络地址的协议叫IP协议
IP地址(internet protocol Address):
ip地址是IP协议提供的一种统一的格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异
四位点分十进制.
mac地址:每块网卡出厂时都被烧制上世界上唯一的mac地址长度是48位2进制,通常由12位16进制数表示(前6位是厂商编号,后6位是流水线号)
arp协议:(地址解析协议)
根据目标ip地址获取目标物理mac地址的一个TCP/IP协议
子网掩码:子网掩码与ip按位&可以知道ip是否与自己的ip处于同一网段.
端口:进程的唯一标识.
通过ip+端口就可以确定唯一主机的唯一进程.
TCP协议:面向连接,安全,全双工的通信协议
全双工的通信将占用两个计算机之间的通信线路,直到它被某一方或双方关闭为止.
tcp协议的三次握手:
client发送SYN(seq=x)报文连接请求.
server收到SYN报文,回应SYN(seq=y,ack=x+1)报文
client收到SYN,回应ack=y+1报文
三次握手成功
TCP协议的四次挥手:
client发送一个FIN来关闭client到server的数据传输
server收到FIN,回发一个ack,确认收到了关闭请求
...
server发送一个FIN给client
client会发一个ack
为什么连接三次握手,断开连接要四次挥手?
建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,
它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。
UDP协议:是一个简单的面向数据报的运输层协议(速度快,但是不安全)
互联网协议与osi模型
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层