![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 80
你回到了你的家
这个作者很懒,什么都没留下…
展开
-
HTTP 1 2 3 的演变过程
HTTP/1.1 相比 HTTP/1.0 性能上的改进:原创 2023-04-21 10:26:40 · 776 阅读 · 1 评论 -
libpcap详解
libpcap(packet capture library),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户层的包捕获API接口,为底层网络监测提供了一个可移植的框架。一、工作原理libpcap主要由两部分组成:网络分接头(network tap)和数据过滤器(packet filter)。网络分接头从网络设备驱动程序中收集数据进行拷贝,过滤器决定是否接收该数据包。libpcap利用BSD packet filter(BPF)算法对网卡接收到的链路层数原创 2021-07-20 19:57:28 · 7339 阅读 · 0 评论 -
netdb.h源代码
POSIX.1:2001的extensionstruct addrinfostruct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; size_t ai_addrlen; char * ai_canonname; struct sockaddr * ai_addr; struct addrinfo * ai_next};参数解释:.原创 2021-07-07 17:10:14 · 607 阅读 · 0 评论 -
RFC 1918(本地IP地址的划分)
三、私有地址空间Internet Assigned Numbers Authority(IANA)已为私有网络保留以下三块IP地址空间: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)将第一块称为“24原创 2021-06-16 09:26:28 · 5796 阅读 · 1 评论 -
RAW-socket
一、简介Internet套接字是大多数操作系统中实现网络通信的方式。它们通常由套接字API提供,并且基于与读取和写入文件相同的原则。程序可以通过操作系统提供的功能获得套接字。然后,该函数返回套接字描述符,通常是一个简单的整数,类似于大多数操作系统提供的用于文件读写操作的描述符。然后,这个套接字描述符可以用于从套接字写入或读取数据。写入套接字的数据通过添加首部和尾部被操作系统封装,然后通过网络接口通过网络将完整的数据包发送到目标主机。从套接字接收到的数据显示给程序,而不带首部和尾部,仅向用户显示用户数据。这原创 2021-06-09 22:53:57 · 747 阅读 · 1 评论 -
RAW socket使用
一、通用首先讨论在使用以下任何API进行开发时必须考虑的一些一般性问题。除了这里引出的问题外,编程者还必须注意他想要使用的网络协议的特殊性。如果没有注意到这种特殊性,例如交换信息的正确顺序,就不能确保我们能够与另一个主机通信。1.1 字节顺序在网络通信中,字节顺序(也称为endianness)对于正确设置和解释字段至关重要。每当一个值需要超过1字节的存储空间时,我们就必须在网络字节顺序和主机字节顺序之间进行转换。根据所使用的协议和操作系统,网络字节顺序和主机字节顺序可能不同。对于IP协议,网络字节顺序原创 2021-06-09 16:05:39 · 3199 阅读 · 1 评论 -
tcpdump使用说明
一、用法二、描述三、选项四、例子五、输出格式tcpdump的输出是与协议无关的。下面给出了对于输出格式的简短介绍以及几个例子。Timestamps默认情况下,输出的最前方是时间戳,它用如下格式表示当前时间:hh:mm:ss.frac它的精确程度和内核的时钟一样。timestamp反映了内核对包附加的时间戳。这个时间戳没有考虑到网络层完成从网络中接收到包的动作到内核对包附加时间戳之间的时间间隔。这个时间间隔包括了两个延迟,第一个延迟是网络层接口完成接收包到内核收到一个interrupt并原创 2021-06-05 08:00:02 · 835 阅读 · 0 评论 -
socket网络编程知识
1 sockaddr_insockaddr_in在头文件netinet/in.h或arpa/inet.h中定义,该结构体定义如下:struct sockaddr_in{ sa_family_t sin_family; //地址族 uint16_t sin_port; //16位TCP/UDP端口号 struct in_addr sin_addr; //32位IP地址 char sin_zero[8]; //不使用该结构体中提到原创 2021-06-01 17:37:38 · 171 阅读 · 1 评论 -
RFC 5961翻译
一、介绍TCP [RFC0793] is widely deployed and the most common reliable end-to-end transport protocol used for data communication in today’s Internet. Yet, when it was standardized over 20 years ago, the Internet was a different place, lacking many of the thre原创 2021-05-19 14:43:58 · 380 阅读 · 0 评论 -
RFC 791翻译(IP的主要内容)
三、具体内容3.1 首部格式对首部内容的一个大概描述如下: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL原创 2021-05-18 10:18:53 · 492 阅读 · 0 评论 -
RFC792翻译(ICMP主要内容)
一、介绍The Internet Protocol (IP) [1] is used for host-to-host datagram service in a system of interconnected networks called the Catenet [2]. 连接网络的设备称为gateway。These gateways communicate between themselves for control purposes via a Gateway to Gateway Proto原创 2021-05-18 09:52:32 · 1101 阅读 · 0 评论 -
RFC 793翻译(TCP的主体内容)
一、介绍The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in packet-switched computer communication networks, and in interconnected systems of such networks.这份文件描述了TCP执行的函数,实现TCP的程序以及它为程序和用户提原创 2021-05-15 15:39:17 · 1021 阅读 · 0 评论 -
RFC 6528 翻译
一、介绍长时间来,因特网中一直存在针对TCP连接的大量off-path攻击。这些攻击有很多种不同的形式,例如trust-relationship exploitation、denial-of-service attack[CPNI-TCP]。对于这些攻击的讨论可以追溯回至少1985年,当时Morris[Morris1985]描述了一种基于猜测在两个已知终端间创建新连接时的TCP sequence numbers[RFC0793]的攻击方式。1996年时,RFC 1948[RFC1948]提出了一种选择T原创 2021-05-13 16:02:02 · 158 阅读 · 0 评论 -
网络层安全:IPsec和virtual private network
IP安全协议(IPsec)为网络层提供了安全性。IPsec保护两个网络层实体间的IP数据报,包含主机和路由器。许多机构(公司、政府部门、非盈利性组织等)都使用IPsec来创建运行在公共因特网之上的虚拟专用网(virtual private network,VPN)。在了解IPsec细节前,我们需要知道为网络层提供安全性的意义。在网络层实体间(例如,两台路由器间)如果具有机密性,那么发送实体加密它发送给接收实体的所有数据报的载荷。这种载荷可以是一个TCP报文段、一个UDP报文段、一个ICMP报文段等等。如果原创 2021-05-13 09:45:32 · 720 阅读 · 1 评论 -
TCP三次握手和四次挥手
一、三次握手三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。刚开始时客户端处于Closed的状态,服务端处于Listen状态。进行三次握手:第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。首部的同步位SYN=1,初始序号seq=x,SYN=原创 2020-11-04 17:01:11 · 9006 阅读 · 0 评论 -
GET和POST的区别
HTTP最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议;后来又被被广泛的扩充到接口格式的定义上。所以在讨论GET和POST区别的时候,需要现确定下到底是浏览器使用的GET/POST还是用HTTP作为接口传输协议的场景。一、浏览器的GET和POST这里特指浏览器中非Ajax的HTTP请求,即从HTML和浏览器诞生就一直使用的HTTP协议中的GET/POST。浏览器用GET请求来获取一个html页面/图片/css/js等资源;用POST来提交一个表单,并得到一个结果的网页。浏览器将GET和POS原创 2020-10-14 14:43:57 · 598 阅读 · 0 评论 -
五种IO模型
一、阻塞IO模型最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。典型的阻塞IO模型的例子为:data=socket.read()如果数据没有就绪,就会一直阻塞在read方法。二、非阻塞IO模型当用户线程发起一个read操作后,并不需要等待,而是马上就得到了一原创 2020-09-11 11:20:09 · 161 阅读 · 0 评论 -
交换局域网(链路层+以太网+交换机)
下图显示了一个交换局域网连接了3个部门,两台服务器和一台与4台交换机相连接的路由器。一、链路层寻址和ARP1.1 MAC地址1.2 地址解析协议1.3 发送数据报到子网以外二、以太网2.1 以太网帧结构2.2 以太网技术三、链路层交换机3.1 交换机转发和过滤3.2 自学习3.3 链路层交换机的性质...原创 2020-09-05 08:41:27 · 1829 阅读 · 0 评论 -
从web页面请求的历程出发了解计算机网络的基础知识
一、准备:DHCP、UDP、IP和以太网我们假定Bob启动他的便携机,然后将其用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连,如下图所示:学校的这台路由器与一个ISP连接,本例中ISP为comcast.net。在本例中,comcast.net为学校提供了DNS服务;所以,DNS服务器驻留在Comcast网络中而不是学校网络中。我们将假设DHCP服务器运行在路由器中,就像常见情况那样。当Bob首先将其便携机与网络相连时,没有IP地址他就不能做任何事情,所以,Bob的便携机所采取的原创 2020-09-05 00:15:48 · 210 阅读 · 0 评论 -
TCP实现原理(拥塞控制)
一、拥塞控制原理简介TCP的拥塞控制必须使用端到端的拥塞控制而不是使用网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈。TCP所采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率。如果一个TCP发送方感知到从它到目的地之间的路径上没有什么拥塞,则TCP发送方增加其发送速率;如果发送方感知沿着该路径有拥塞,则发送方就会降低其发送速率。但是这种方式提出了三个问题:一个TCP发送方如何限制它向其连接发送流量的速率?一个TCP发送方如何感知从它到目的地之间的路原创 2020-08-31 18:45:34 · 4236 阅读 · 0 评论 -
https的加密原理-SSL+TLS
在下面的介绍中,我们将考察密码技术如何用安全性服务加强TCP,该安全性服务包括机密性、数据完整性和端点鉴别。TCP的这种强化版本通常被称为安全套接字层(Secure Socket Layer,SSL)。SSL版本3的一个稍加修改的版本被称为运输层安全性(Transport Layer Security,TLS)。为了理解SSL的需求,接下来浏览下某典型的因特网商业的场景。Bob在Web撒华姑娘冲浪,到达了Alice公司的站点,这个站点正在出售香水。Alice公司站点显示了一个表格,假定Bob可以在该表格中原创 2020-08-25 23:35:26 · 1117 阅读 · 1 评论 -
UDP
UDP从应用进程得到数据,附加上用于多路复用/分解服务的源和目的端口号字段,以及两个其他的小字段,然后将形成的报文段交给网络层。网络层将该运输层报文段封装到一个IP数据报中,然后尽力而为地尝试将此报文段交付给接收主机。如果该报文段到达接收主机,UDP使用目的端口号将报文段中的数据交付给正确的应用进程。值得注意的是,使用UDP时,在发送报文段前,发送方和接收方的运输层实体之间没有握手。正因为如此,UDP称为是无连接的。DNS是一个通常使用UDP的应用层协议的例子。当一台主机中的DNS程序想要进行一次查询时,原创 2020-08-03 12:29:56 · 253 阅读 · 0 评论 -
DNS(从域名到IP地址的对应)
因特网上的主机可以使用多种方式进行标识。一种标识方法是用它的主机名,如cnn.com、www.yahoo.com等,这些名字便于记忆也乐于被人们接受。然而,主机名几乎没有提供关于主机在因特网中位置的信息。并且,因为主机名可能由不定长的字母数字组成,路由器难以处理。由于这些原因,主机也可以使用所谓IP地址进行标识。一个IP地址由4个字节组成,并且有着严格的层次结构。例如121.7.106.84,当我们从左至右扫描它时,我们会得到越来越具体的关于主机位于因特网何处的信息(即在众多网络的哪个网络里)。一、DN原创 2020-08-03 10:47:43 · 3093 阅读 · 0 评论 -
IPv4+IPv6+DHCP
因特网编址和转发是网际协议(IP)的重要组件。目前有两个版本的IP在使用,广泛部署的IP协议是版本4的IP协议,通常被称为IPv4,而现在用来大规模替代IPv4的是IPv6。因特网的网络层有三个主要组件,第一个组件是IP协议,第二个组件是路由选择部分,这决定了数据报从源到目的地所流经的路径。第三个组件是报告数据报中的差错和对某些网络层信息请求进行响应的设施,这涉及到互联网控制报文协议(ICMP)。网络层的内部视图如下:一、IP数据报格式网络层分组被称为数据报,首先以IPv4数据报的语法和语义开始。原创 2020-07-30 08:58:20 · 1184 阅读 · 0 评论 -
TCP实现原理(报文段结构+可靠数据传输+流量控制)
TCP是因特网运输层的面向连接的可靠的运输协议。一、TCP连接TCP被称为是面向连接的(connection-oriented),这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互“握手”,即它们必须相互发送某些预备报文段,以建立确保数据传输的参数。作为TCP连接建立的一部分,连接的双方都将初始化与TCP连接相关的许多TCP状态变量。由于TCP协议只在端系统中运行,而不在中间的网络元素(路由器和链路层交换机)中运行,所以中间的网络元素不会维持TCP连接状态。事实上,中间路原创 2020-07-29 20:38:24 · 2770 阅读 · 0 评论 -
HTTP基本知识
一、HTTP概况Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行回话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。HTTP使用TCP作为它的支撑运输协议(不是UDP)。HTTP客户首先发起一个与服务器的TCP连接。一旦连接建立,该浏览器和服务器进程就可以通过套接字接口(Socket)访问TCP原创 2020-07-29 17:13:51 · 462 阅读 · 0 评论