套间子:是计算机网络数据结构,在任何类型的通信开始之前,网络应用程序必须创建套接字
在Internet中提供服务的主机叫服务器
通过访问服务器从而获得的有用信息叫客户端
URL:统一资源定位符
计算机的核心是cpu,cpu承担了所有的计算机任务
一个cpu核心只能执行一个任务
TCP是建立在IP协议上的
tcp协议:是负责2台计算机之间建立可靠连接,保证数据包按顺序到达
Tcp/ip是一种网络通信协议,规范了网络上的所有通信设备。
服务端 与客户端的实现:
先 创建服务端:socket,
然后绑定ip地址和端口号,自己与自己连ip地址可以忽略不写,bind()
设置监听listen():可以实现多台电脑l连接
然后等待连接:accept()返回2个参数,一个是socket号,用它来接收数据,还有一个address
返回第一个值.recv(1024)就是 客户端发送过来的值
服务端:
先连接:connect(),把ip 地址和端口号写进去注意是2个括号
然后.send(.encode(:utf-8))发送消息
也可以接受服务端发送过来的消息:rever(1024)
print("客务端说:"+date.decode("utf-8"))
ck.send(name.encode("utf-8"))
Tcp是建立可靠的连接,并且通信方面都可以以流的的形式发送数据,相对TCP,UDP则是面向无连接的协议。
tcp分4层:应用层:负责发送和接受什么数据,如何解释数据,呈现数据,加密数据等。
特点:有序性:为每个数据包编排序号, 使接收端判断先后到达的顺序。
正确性:tcp用一个checksum函数来检查数据是否有错误。
可靠性:发送端超时,数据丢失,就会重新发送
可控性
tcp三次握手:建立连接时,客户端发送syn包到服务器,等待服务器确认
服务器收到syn包后,反馈给客户端syn+ack
客户端收到包,向服务器发送ack,此时客户端服务端连接成功
四次关闭:关闭的一方向另一方发送FIN附加标记的报文段
服务器收到fin报文段后,并不立即用FIn报文段回复主机,而是先向主机发送一个确认序号ack
3服务器的应用程序清理工作后,向客户端发送一个FIN报文段
4客户端收到这个FIN报文段后,向服务器发送一个ACK,表示彻底释放。
传输层:为2个主机的不同端号之间的通信提供服务
网络层:为2个主机之间提供通信服务,定义数据如何被封装为传送包
接口层;负责相邻物理设备之间的信息传输
IP地址:IPv4不够,v6诞生,域名::由于ip数字组成
使用udp时,不需要建立连接,只需知道对方的IP地址和端口号,就可以直接发送数据包里,但不知道能不能接受到
虽然udp传输数据不可靠,但它速度快,要求不高
udp:是一种无连接的传输协议,不可靠
Http:超文本传输协议。基本交互流程:建立TCP连接---发送http请求----返回http请求---关闭tcp连接
当服务器发现有客户端建立连接并提交了一个Http请求,返回给客户端Response
HTTp是web浏览器与web服务器之间的通信协议
get:从访问地址中获取信息,post:客户端通过post方法向服务器提交新数据
B/S:本质是将客户端和服务端的代码都部署在服务器的网站上
OSI:应用层:为应用程序提供服务并规定应用程序中通信的细节
表示层:将应用处理的信息转换为网络传输的格式
会话层:建立和断开通信连接
传输层:起着可靠的传输作用
网络:将数据传输到目标地址数据链路,负责物理层面互联的节点之间的通信传输
Tcp/ip:应用层:http,ftp.传输层:t c p/udp 网络层:ip.icmp链路层:以太网帧协议.arp
在网络传输过程中,数据没有封装之前,是不能在网络中传递
arp协议:根据ip地址获取mac地址,以太网帧协议:根据mac地址完成数据包传输
ip地址:可以在网络环境中,唯一标示一台主机
端口号:可以在网络的一台主机上,唯一标示一个进程
c/s模型:client-server:客户端服务器:eg:手机上的应用。缓存大量数据,自定义协议。不安全(安装时可能会窃取用户信息)
b/s模型:browser-server:安全。跨平台。缺:不能缓存大量数据,严格遵守http协议