网络编程的学习

网络基本概念

指令

 网络模型

1.七层模型

也称OSI(Open System Interconection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通讯系统间互联的标准体系。他是一个七层的,抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

第一层 物理层

定义设备标准,如“网线”的接口类型,“管线”的接口类型,“各种传输介质”的传输速率等。物理层的作用是尽可能地屏蔽掉底层的差异,透明的传输bit(比特)

第二层 链路层

定义了如何让格式化数据进行传输,以及如何控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。例如要发送的数据包的大小,要传送的每个数据包的寻址方式,使其到达预定的接收方,以及一种确保不超过一个节点尝试同时向接收方发送数据包的方法。

链路层协议:SDLC,HDLC,PPP,STP,帧中继等。

第三层 网络层

将数据传输到目标地址;目标地址可以使多个网络通过“路由器”连接而成的某一个地址,主要负责寻找地址和路由器选择,网络层还可以实现拥塞控制,网际互联等功能在这一层,数据的单位称为数据包(packet)。

网络层协议的代表包括:IP,IPX,RIP,OSPF等。

第四层 传输层(最重要)

提供“端到端”的服务,可以实现流量控制,负载均匀。传输层信息包括端口,控制字和效验和。传输层位于OSI的第四层,这层使用的设备是主机本身。数据包一旦离开网卡即进入网络传输层。

区块链,BT(种子)

传输层协议:TCP(字节传递可以保证数据安全性)和UDP(传递快不能保证数据的安全性)。

第五层 会话层

负责在网络中的两点*建立******,****维持和终止****通信***,记忆数据的分隔等数据传输相关的管理。会话层的功能包括:建立通信链路,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断是决定从何处重新发送。

第六层 表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式;主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取具体来说,就是将设备固有的数据格式转换为网络标准传输格式,不同设备对同一比特流解释的结果可能会不同;因此,主要负责他们保持一致。

表示层协议还对图片和文件格式信息进行解码和编码。

第七层 应用层

是最靠近用户的OSI层。这一层为用户的应用程序。(例如电子邮件,文件传输和终端仿真)提供网络服务。

应用层协议:HTTP,FTP,SMTP,SNMP,DNS,HTTPS,POP3等。

TCP的三次握手&四次挥手

概念

三次握手相关参数

序列号seq;占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文字段指派一个序号;seq就是这个报文段中的第一个字节的数据编号。

确认号ack;占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。

确认ACK;占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。

同步SYN;连接建立时用于同步序号。当SYN=1,ACK=0时表示;这是一个连接请求报文段。若同意连接,则在响应报文段文段中使得SYN=1,ACL=1.因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0.

三次握手的目的

第一次握手请求连接的包才会使服务器打开连接,占用资源而且容易被恶意攻击!防止攻击的方法,缩短服务器等待时间。*两次握手容易死锁*。如果服务器的响应数据在传输中丢失,*客户端*将不知道*服务器*建立什么样的序列号,客户端认为连接还未建立成功,将忽略服务器发来的任何数据,只等待连接确认应答数据。而服务器在发出的响应超时后,重复发送同样的数据。这样就形成了死锁。

四次挥手

终止FIN;用来释放一个连接。FIN=1表示;此报文段的发送方的数据已经发送完毕,并要求释放运输连接

为什么连接的时候时三次握手,关闭的时候却是四次挥手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用
来应答的,SYN报文是用来同步的。
但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个
ACK报文,告诉Client端,“你发的FIN报文我收到了”。
只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值