
详细信息可以在我的csdn中找到
TCP / IP协议:
(1)协议标准是完全开放的,并且独立于特定的计算机硬件和操作系统.
(2)它独立于网络硬件系统,可以在广域网上运行,并且更适合Internet.
(3)统一分配网络地址. 网络中的每个设备和终端都有一个唯一的地址.
(4)高级协议的标准化可以提供各种可靠的网络服务.
TCP / IP模型将网络分为四层. TCP / IP模型不关注底层物理媒体,而主要关注终端之间的逻辑数据流转发.
TCP / IP模型的核心是网络层和传输层: 网络层解决了网络之间的逻辑转发问题,传输层保证了从源到目的地的可靠传输.
以太网中的大多数数据帧都使用以太网II格式.
以太网帧还包括源MAC地址和目标MAC地址,分别代表发送者的MAC和接收者的MAC. 此外,还有一个帧检查序列字段,用于在传输过程中检查帧的完整性.

Ethernet_II帧类型值大于或等于1536(0x0600)
以太网数据帧的长度在64-1518字节之间

Eachnet_II框架说明如下:
IP数据包格式和标头中的字段
ARP是“地址解析协议”的缩写. 它的作用是在以太网环境中,数据传输取决于MAC地址而不是IP地址,已知IP地址到MAC地址的转换是通过ARP协议完成的.
在Linux上,如果要设置ARP缓存的老化时间,请运行sysctl -w net.ipv4.neigh.ethX =Y. 如果设置其他设置,则只会影响性能. 在Linux中,ARP缓存的老化是基于陈旧状态,而不是删除条目. 过时状态仅缓存缓存;
Internet控制消息协议(ICMP). 它是TCP / IP协议套件的子协议,用于在IP主机和路由器之间传输控制消息.
(1)错误报告消息
当类型值为3时: 端点不可达
当类型值为4时: 源点抑制
当类型值为5时: 重定向已更改.
当类型值为11时,表示超时
当类型值为12时,表明存在参数问题
(2)查询消息
当类型值为8或0: 表示回显请求或响应

当类型值为13或14时,表示时间戳请求或响应.
当目标主机或中间设备发现数据包传输中发生错误并且无法到达目标地址时,它将触发ICMP模块并生成ICMP数据包以将错误报告发送到源主机. 源IP地址和目标IP地址封装在IP数据报中. 因此,在将错误情况报告发送到源主机之前,必须将ICMP消息封装在IP数据报中并进行传输.
Ping程序用于检测主机是否可以与主机通信. 如果无法ping通主机,则表明它无法与此主机建立连接. Ping使用ICMP协议,该协议将icmp回显请求消息发送到目标主机. ICMP协议指定目标主机必须向源主机返回ICMP回显应答消息. 如果源主机在一定时间内收到响应,则认为该主机可访问.
Traceroute是用于检测主机和目标主机之间路由的重要工具您当前的网络存在链路层劫持,也是最方便的工具. 如前所述,尽管ping工具也可以检测到,由于ip标头的限制,但是ping无法完全记录它经过的路由器. 因此,Traceroute填补了这一空白.
在接收到目标主机的IP后,Traceroute首先将TTL = 1的UDP数据包发送到目标主机. 接收到数据包后,第一个路由器会自动将TTL减1并更改TTL. 为0后,路由器将丢弃该数据包并生成主机无法访问的ICMP数据报. 主机收到此数据报后您当前的网络存在链路层劫持,将TTL = 2的UDP数据报发送到目标主机,然后刺激第二个路由器将ICMP数据报发送到主机. 重复直到到达目标主机. 这样,traceroute获得了所有路由器IP. 这样可以避免IP标头只能记录有限的路由IP的问题.
详细信息可以在我的csdn中找到
计算机网络传输层
DNS端口是53 UDP,用于DNS解析.
GET和POST本质上是TCP连接,没有区别. 但是,由于HTTP规定和浏览器/服务器限制,它们在应用程序过程中显示出一些差异.
GET生成一个TCP数据包; POST生成两个TCP数据包.
对于GET请求,浏览器将http标头和数据一起发送,服务器响应200(返回数据);
对于POST,浏览器首先发送标头,服务器以100继续响应,浏览器再次发送数据,服务器以200 ok(返回数据)响应.
GET和POST都有各自的语义,不能随意混合. 在良好的网络环境中,可以忽略发送一个数据包的时间与发送两个数据包的时间之间的差异. 在恶劣的网络环境中,带有两个数据包的TCP在验证数据包的完整性方有很大的优势. 并非所有浏览器都在POST中发送两次数据包,而Firefox仅发送一次.

1xx信息提示
这些状态代码表示临时响应. 客户应准备好在收到常规响应之前接收一个或多个1xx响应.
2xx成功
此状态代码表示服务器成功接受了客户端请求.
3xx重定向
客户端浏览器必须采取更多措施来满足请求. 例如,浏览器可能必须在服务器上请求其他页面或通过代理服务器重复该请求.
4xx客户端错误
发生错误,客户端似乎有问题. 例如,客户端请求一个不存在的页面,并且客户端没有提供有效的身份验证信息.
5xx服务器错误
服务器由于遇到错误而无法完成请求.
session在服务器端,默认情况下,客户端(浏览器)会话上的cookie存储在服务器上的文件中(而不是内存中). 会话的操作取决于存储在cookie中的会话id,即,如果在浏览器中禁用了cookie,则该会话也将无效(但可以通过其他方式来实现,例如传递session_id在网址中). 会话可以放置在文件,或内存中. 用户验证通常使用会话
缓存控制的含义
可缓存性 p>

max-age(HTTP / 1.1): 用户访问(请求)后文件在网络中的生存时间. 这是相对于Request_time的相对值.
有效期(HTTP / 1.0): 1.上次(Atime)的相对访问文件-与年龄相同
2. 绝对修改时间(MTime)-时间由文件创建时间决定
Etag是服务器上资源的标识符,该标识符在HTTP响应标头中传输到客户端. 当客户端从服务器请求资源时,它使用If-None-Match请求标头来携带前一服务器返回的Etag值. 当服务器收到第二个请求并发现它带有If-None-Match字段时,它将重新计算服务器相应资源的Etag. 如果两者匹配,则认为资源没有改变,并直接将相应的304发送给客户端. 让客户端读取缓存中的数据.
使用Etag来利用浏览器的缓存,从而减轻了我们服务器的带宽压力. 这样可以提高服务器的性能(在数据传输方面).
长连接通常用于频繁的操作和点对点通信,并且连接的数量不能太大. 每个TCP连接都需要三步握手,这需要时间. 如果首先连接每个操作,则处理速度将大大降低,因此在每个操作之后都不会断开连接,并且在二次处理期间直接发送数据包. 可以,无需建立TCP连接. 例如,连接使用长连接. 频繁的短连接通信会导致套接字错误,而频繁创建套接字会浪费资源.
相比之下,像WEB网站这样的http服务通常使用短链接,因为长连接消耗服务器的一定数量的资源,而像WEB网站这样的成千上万的客户端使用短连接. 这样可以节省一些资源. 如果您使用长连接并且同时有成千上万的用户,如果每个用户都占用一个连接,那么您可以想象. 因此,并发量很大,但是每个用户都需要短连接而无需频繁操作.
http很容易被Internet劫持,从而导致用户被欺骗.
https:
http1.x的解析是基于文本的. 基于文本协议的格式分析存在天然缺陷,文本的表达形式多样. 必须有许多方案来考虑健壮性. 二进制是不同的. 仅识别0和1的组合. 基于这种考虑,http2.0的协议分析决定采用二进制格式,实现起来既方便又健壮.
TTP2.0的最大亮点是多路复用,并且多路复用的好处仅在大量http请求的情况下才显而易见,因此有人认为它仅适用于浏览大型站点的浏览器. 没错,但是http2.0的好处不仅是多路复用,请求压缩,优先级控制,服务器推送等等. 对于基于内容的移动应用程序(例如淘宝应用程序),HTTP请求数量很大,并且多路复用仍然可以显着改善体验. (HTTP / 2包括二进制帧,多路复用,请求优先级,流控制,服务器端推送和报头压缩等新改进. )
epoll的两种工作模式: 1.水平触发(LT)2.边缘触发(ET)
LT模式: 如果一个就绪事件没有被处理一次,它将一直被处理. 也就是说,未处理的事件将继续放回就绪队列(即该内核中的链接列表)并一直处理.
ET模式: 就绪事件只能处理一次. 如果未处理,则在准备下一个其他事件时将对其进行处理. 而且,如果将来没有就绪事件,那么数据的其余部分也会随之丢失.
这表明ET模式的效率比LT模式的效率高得多. 但是,如果使用ET模式,则必须确保每次处理数据时都必须在不造成数据丢失的情况下进行处理,因此对编写代码的人员的要求更高.
注意: ET模式仅支持无阻塞读写: 以确保数据完整性.
原始csdn
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-154480-1.html
@LINX11mv的意思表达了她们的心情与决心欢迎归来
再一个咱们国家的大型舰艇应该继续建造
这东西