计网(网络层)-编程思维

4.1 网络层的几个重要概念 4.1.1 网络层提供的两种服务 1、网络层要设计得尽量简单,向其上层只提供简单的、无连接的、尽最大努力交付的数据报服务。 IP数据报和IP分组是同义词 2、虚电路服务与数据报服务的对比 4.1.2 网络层的两个层面 1、在路由器之间传送的信息主要有两类: ①转发源主机和目的主机之间所传送的数据:把源主机所转发的分组,从一个路由器传送到另一个路

你所不知道的端口耗尽(二)-编程思维

问题背景 在你所不知道的端口耗尽(一)中,介绍了经典的客户端端口耗尽问题,在本篇文章中会介绍另外一种端口耗尽问题,即SNAT端口耗尽 什么是SNAT SNAT是源网络地址转换(Source Network Address Translation)的缩写,它是网络地址转换(NAT)的一种形式。SNAT主要用于将内部网络的私有IP地址转换为外部网络可见的公共IP地址。在互联网通信中,源IP地址通常是

你所不知道的端口耗尽(一)-编程思维

问题背景 有同事联系我说,在生产环境上,访问不了我负责的common服务,然后我去检查common服务的health endpoint, 没问题,然后我问了下异常,timeout导致的System.OperationCanceledException。那大概率是客户端的问题,会不会是端口耗尽,用netstat看下是不是有大量的端口占用,果然如此,大概如图: 什么是端口耗尽 端口耗尽(Port

计算机网络-网络层-编程思维

目录概述分组转发和路由选择网络层向其上层提供的两种服务面向连接的虚电路服务无连接的数据报服务网际协议IP和异构网络互联网际协议IP异构网络互联IPv地址及其编址方法概述IPv4的分类编址方法概念简介A类网络B类网络C类地址IPv4地址的划分子网编址方法子网掩码默认子网掩码无分类编址方法IPv4地址的规划概述使用定长子网掩码使用变长子网掩码IPv4地址与MAC地址地址解析协议ARPARP解析过程A

计算机科学速成课-编程思维

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、操作系统等,主题之间都是紧密相连的,比国内很多大学计算机课程强太多! 这门课程通过生动形象的讲解方式,向普通人介绍了计算机科学相关的基础知识,包括计算机的发展史、二进制、指令和程序、数据结构

剖析网络测量:counting and measuring network traffic-编程思维

全文共18000字,讲解了网络测量和计数中的多方面知识:网络测量的意义、网络测量的手段分类、网络测量在实现上的挑战、以及解决这些挑战所用到的技术和协同方案等等。 参考书籍有:《Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices (2nd Edition)》 本博文首发于博

计算机网络-应用层-编程思维

目录应用层协议原理万维网和HTTP协议万维网概述统一资源定位符HTML文档超文本传输协议(HTTP)HTTP报文格式请求报文响应报文cookie万维网缓存与代理服务器DNS系统域名空间域名服务器和资源记录域名解析过程递归查询迭代查询动态主机配置协议(DHCP)DHCP中继代理DHCP交互过程电子邮件电子邮件系统的组成简单邮件传送协议邮局协议POP3互联网报文存取协议电子邮件格式和MIME 应用层

🔥🔥tcp协议:三次握手、四次挥手,你真的了解吗?-编程思维

什么是TCP网络分层 应⽤层 应用层是网络协议栈中的最顶层,主要负责应用程序之间的通信。其中一种常见的应用层协议是HTTP协议,它定义了应用程序之间如何传递报文。 传输层 传输层是为两台主机之间的应用进程提供端到端的逻辑通信的层级。其中一种常见的传输层协议是TCP协议,它负责可靠的数据传输。 ⽹络互连层 网络互连层负责主机之间的通信,它将传输层产生的数据包封装成分组数据包,并通过路由选择将其发

🔥🔥你以为键入网址后只是等待吗?惊!原来网页显示背后隐藏着这些奇妙步骤(终章)-编程思维

引言 在前面的讨论中,我们已经详细介绍了计算机网络中的物理层、传输层和网络层以及应用层的工作原理。这些层次组成了一个完整的网络架构,确保了数据的传输和交流。在今天的讨论中,我们将进一步深入探讨数据包从计算机发出后的一系列流程,这涉及到网络设备中的交换机和路由器在其中扮演的重要角色。 交换机 现在我们来详细了解一下网络包是如何通过交换机进行传输的。交换机的设计理念是将网络包以原始的形式直接转发到目

🔥🔥你以为键入网址后只是等待吗?惊!原来网页显示背后隐藏着这些奇妙步骤(中)-编程思维

引言 在之前的讨论中,我们已经对HTTP和DNS协议进行了详细的探讨,这些协议主要用于应用层的通信。然而,今天我们将把重点转移到网络层和传输层的协议上,也就是TCP/IP协议。所以,我们将深入研究这些协议的工作原理和作用。 可靠传输-TCP HTTP是一种基于TCP协议传输的协议。在TCP传输数据之前,需要进行三次握手来建立连接。如果HTTP请求消息的长度超过了MSS(Maximum Segme

计算机网络-ip地址-编程思维

目录子网划分定长子网划分子网划分的方法子网掩码可变长子网划分无类别编址网络前缀路由聚合特殊用途的IP地址专用网络地址链路本地地址运营商级NAT共享地址用于文档的测试网络地址IP地址的规划和分配IP地址的规划和分配方法IP地址的规划和分配实例 子网划分 定长子网划分 子网划分的方法 从IP地址的主机号部分借用若干位作为子网号,主机号相应减少同样的位数 \[{IP地址}::=\{{<网络号&g

你以为键入网址后只是等待吗?惊!原来网页显示背后隐藏着这些奇妙步骤(上)-编程思维

当键入网址后,到网页显示,其间发生了什么 在面试过程中,很可能会遇到一个常见的问题,即"当输入一个网址后,到网页显示之间发生了什么"。这个问题的确非常常见,我也喜欢问这个问题,因为它可以帮助我了解面试者对网络部分的应用知识的掌握情况,同时也能够基本囊括网络通信的整个过程。 接下来,为了更好地探究这个问题,我将以一个简单的网络拓扑模型为例,来详细解释在键入网址后到网页显示之间具体发生了什么。 探

常用端口-编程思维

端口概念 在网络技术中,端口(Port)有两种意思: 一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。 二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。 网络端口的分类 按端口号可分为3大类: (1)公认端口

从数据链路到神秘的mac地址和arp协议-编程思维

引言 链路是指从一个结点到相邻结点的一段物理线路。数据链路是在链路的基础上增加了一些必要的硬件和软件。这些硬件包括网络适配器,而软件则包括协议的实现。在网络中,主机、路由器等设备都必须实现数据链路层。 在局域网中,主机、交换机等网络设备都必须实现数据链路层,以便实现数据的可靠传输和交换。 从层次上来看,数据在网络中的流动可以被划分为不同的层次,其中数据链路层是其中的一层。数据链路层位于网络协

解密网络通信的关键技术(下):dns、arp、dhcp和nat,你了解多少?-编程思维

引言 在上一章中,我们详细介绍了域名系统(DNS)和地址解析协议(ARP)的工作原理,从而对域名解析和介质访问控制(MAC)地址寻址有了更深入的了解。在今天的章节中,我们将继续探讨动态主机配置协议(DHCP)和网络地址转换(NAT)技术,以便更好地理解IP地址的动态分配和解决IPv4地址枯竭问题的NAT技术的引入。 DHCP 在我们日常生活中,动态主机配置协议(DHCP)是非常常见的,尽管我们可

解密ip分片与重组:数据传输中的关键技术-编程思维

引言 在上一章节中,我们详细讨论了IP的分类和无分类原则的原理以及其在网络通信中的应用。IP分片与重组是在数据包传输过程中起到关键作用的机制。当数据包的大小超过网络链路的MTU(最大传输单元)限制时,IP分片将数据包分割为多个较小的分片进行传输。这些分片在网络中独立传输,到达目的地后,通过IP重组机制将它们重新组合成完整的数据包。这种分片和重组的过程确保了大尺寸的数据包能够在网络中进行传输,同时

探秘公有ip地址与私有ip地址的区别及其在路由控制中的作用-编程思维

引言 IP地址是互联网通信中至关重要的组成部分。虽然在前一章节我们讲解了IP一些基础知识,但在我们日常生活中,我们经常听到公有IP地址和私有IP地址这两个术语。那么,公有IP地址和私有IP地址有何区别呢? 在本文中,我们将深入探讨公有IP地址和私有IP地址的概念以及它们在网络通信中的作用。我们还将了解公有IP地址和私有IP地址的管理机构以及它们在路由控制中的作用。 公有 IP 地址与私有 IP

ip协议:连接你我,掌握互联网的关键-编程思维

IP 基本认识 在之前的章节中,我们已经详细介绍了应用层和传输层的相关概念和原理,了解了进程之间如何进行可靠的数据传输。我们知道,传输层的头部包含了进程所使用的端口信息,这是为了确保数据能够正确地传递到目标进程。今天,我们将进一步探讨网络层的IP协议,以了解主机之间如何进行通信。 在TCP/IP参考模型中,IP协议位于第三层,即网络层。网络层的主要功能是实现主机与主机之间的通信,也被称为点对点(

网络的救命稻草:重传机制如何确保数据顺利传输?-编程思维

重传机制 在设计架构或涉及网络时,我们都知道网络是不可靠的,可能会发生超时、断开连接、网络分区等各种问题。这些问题对于数据传输的可靠性和稳定性产生了很大的挑战。为了解决这些问题,各个组织都设立了专门的网络部门,致力于研究和解决网络问题。 TCP实现可靠传输的方式之一是通过序列号与确认应答。在TCP中,当发送端的数据包到达接收主机时,接收主机会返回一个确认应答消息,表示已经成功接收到数据。 然而

tcp协议的秘密武器:流量控制与拥塞控制-编程思维

TCP可靠性传输 相信大家都熟知TCP协议作为一种可靠传输协议,但它是如何确保传输的可靠性呢? 要实现可靠性传输,需要考虑许多因素,比如数据的损坏、丢失、重复以及分片顺序混乱等问题。如果不能解决这些问题,就无法实现可靠传输。 因此,TCP采用了序列号、确认应答、重发控制、连接管理和窗口控制等机制来实现可靠性传输。 在本文中,我们将重点介绍TCP的滑动窗口、流量控制和拥塞控制。重传机制将在下一章节