计算机网络基础内容整理

计算机网络知识汇总(超详细整理) 第四次:客户向服务器发送确认段,确认字号段有效(ACK=1),表示客户传输的数据序号是x+1(seq=x+1),表示客户期望接收服务器数据序号为y+1+1(ack_seq=y+1+1);第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是y(seq=y),表示服务器已经收到客户端序号为x的报文段,准备接受客户端序列号为x+1的报文段(ack_seq=x+1);协议表明IP数据所携带的具体数据是什么协议的,如TCP、UDP。 阅读详情


前言

这里主要记录的是自己关于网络方面的学习总结,参考了javaguide、cs-notes和图解http的内容


一、OSI七层模型

网络相关的内容首先就是关于OSI七层模型
主要包括:

  1. 应用层 ——计算机应用服务
  2. 表示层 —— 数据处理
  3. 会话层 —— 管理应用程序之间的会话
  4. 传输层 —— 为进程通信提供通用数据服务
  5. 网络层 —— 路由和寻址
  6. 数据链路层 —— 管理相邻节点的数据通信
  7. 物理层 —— 利用传输介质为数据链路层提供数据支持
    七层结构相对来讲是很清晰的,但实现起来相对复杂,周期过长,所以目前常用的模型是TCP/IP四层模型

二、TCP/IP四层模型

TCP/IP四层模型是目前应用最广泛的模型,主要包括:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 网络接口层

应用层(Application Layer)

主要为两个终端的应用程序(进程)之间的信息交互提供服务,定义了信息交互的格式,并交给传输层进行下一步处理,而不用关心传输层具体操作
应用层常见协议:

  • HTTP/HTTPS —— 最常见的超文本传输协议(80、443)
  • DHCP —— 路由器分配ip地址(67、68)
  • FTP —— 基于tcp的文件传输协议(20/数据连接、21/控制连接)
  • SSH —— 为远程登录会话提供的安全协议(20、21)
  • SMTP —— 邮件发送协议,发送ascii码(25)
  • DNS —— 域名解析(53/udp或tcp,默认udp长度超过512字节时使用tcp)

传输层(Transport Layer)

负责为两个终端进程间通信提供通用的数据传输服务
通用是指不管是http还是smtp都是用tcp

  • 是进程间的逻辑通信(看起来像是有一条端到端的逻辑通信信道)

udp

用户数据报协议

  • 无连接
  • 尽最大可能交付
  • 没有拥塞控制
  • 面向报文
    对于用户应用层下发的报文不进行合并和拆分,只是添加udp首部
    支持一对一、一对多、多对一、多对多的通信

udp首部格式

首部只有8个字节:

  1. 源端口
  2. 目的端口
  3. 长度
  4. 校验和
    cs-notes图
    伪首部的12个字节是为了计算检验和临时加的

tcp

传输控制协议

  • 面向连接
  • 提供可靠交互
  • 有流量控制
  • 提供全双工通信
  • 面向字节流(把应用层报文看作字节流,把字节流重新组织成大小不等的数据块)
  • 点对点连接

tcp首部格式

主要包括:

  1. 序号 seq: 对字符流进行编号,表示第一个字节编号,如果编号为301,则表示第一个字符编号为301,若数据长度为100,下一个报文段序号为401
  2. 确认号: 希望收到的下一个报文段的序号。若B受到A序号为501,长度为200字节的报文段,则B返回给A的确认报文段中确认号为701,及B期望下一个报文段的序号为701
  3. 数据偏移: 数据部分距离报文起始位置的偏移量,实际上就是首部的长度
  4. 确认 ack: ack = 1时确认号有效,否则会忽略确认号。tcp建立连接之后传输的所有报文段ack必须置1
  5. 同步 syn: 建立连接时用来同步的序号。syn = 1, ack = 0 表示连接请求报文段,若服务器同意建立连接,则响应syn = 1, ack = 1
  6. 终止 fin: 用来释放一个连接,当fin = 1,表示报文段的发送方数据发送完毕,并要求释放连接
  7. 窗口: 接收方让发送方设置发送窗口的依据,因为接收方数据缓存空间有限
    cs-notes图

tcp三次握手

为了将数据准确无误的传输给接收方,tcp协议采用三次握手策略
具体握手步骤:

  1. 服务器端B处于LISTEN(监听)状态,等待客户端的连接请求
  2. 客户端A向B发送请求连接的报文,syn = 1,ack = 0,选择初始序号x
  3. B接收到连接请求报文,若同意连接,则向A发送请求确认报文,syn = 1,ack = 1,确认号seq = x + 1,同时选择一个初始序号y
  4. A收到B的连接确认报文后,还要向B发出确认,seq = y + 1,序号x + 1
  5. B收到A的确认后,连接建立

若握手过程中某个阶段莫名中断,TCP协议会再次以相同顺序发送相同数据包
图解http

为什么要三次握手

三次握手的目的是建立可靠通信,确认双方的发送和接收功能是否正常

  1. 第一次握手: client什么都不能确认;Server确认对方发送正常,自己接收正常
  2. 第二次握手:Client确认自己发送、接收正常,对方发送、接收正常;Server确认对方发送正常,自己接收正常
  3. 第三次握手:Client确认自己发送、接收正常,对方发送、接收正常;Server确认自己发送、接收正常,对方发送接收正常
    共计3次握手,确认双方的发送接收都正常

第三次握手是为了什么

第三次握手是为了防止失效的连接请求到达服务器,导致服务器错误打开连接
如果客户端发送的请求在网络中滞留,就需很长时间才能收到服务端回传的连接确认。若此时客户端已经等待超过了超时重传的时间,就会重新请求连接。但是滞留的请求最终还是会到达服务端,如果没有第三次握手,服务端就会打开两个tcp连接,造成资源浪费。
而有第三次握手的情况下,客户端就会忽略服务器之后发回的连接请求确认,不进行重复的第三次握手,避免打开多个

《计算机网络 自顶向下方法》学习整理 《计算机网络 自顶向下方法》学习整理计算机网络1、计算机网络(1)英特网(2)网络边缘(3)网络核心(4)时延、丢包、吞吐量(5)协议层次2、应用层(1)应用层协议(2)Web和HTTP(3)SMTP(4)DNS3、运输层(1)运输层服务(2)无连接运输:UDP(用户数据报协议)(4)面向连接:TCP(传输控制协议)4、网络层(1)虚电路(2)IP协议 计算机网络 1、计算机网络 (1)英特网 英特网:英特网是世界范围内的计算机网络,互联了全世界数亿计计算机网络设备的网络。 协议:在网络中,一个协议 阅读详情

相关推荐

计算机网络复习-习题整理(一)计算机网络概述

1.最早出现的计算机网络是( )。 A、ARPANet B、Internet C、Ethernet D、www 2.对于用户来说,在访问网络共享资源时,( )这些资源所在的物理位置。 A、不必考虑 B、必须考虑 C、访问硬件时需考虑 D、访问软件时需考虑 3.计算机网络中广域网和局域网的分类划分依据是( )。 A、交换方式 B、地理覆盖范围 C、传输方式 D、拓扑结构 4.拥有通信资源,在网络...

Sly_ame的博客 4673

五天带你学完《计算机网络》,期末考试不挂科

欢迎广大学子报考河北师范大学软件工程专业!!!!!!!! 本系列文章基于谢希仁《计算机网络》第五版教材并根据上课记录整理而成。感谢各位读者一直以来对于笔者的大力支持!

ngtnmd的博客 9928

手把手教你搞定CAC会议投稿:从LaTeX模板到PDF eXpress避坑全流程

本文详细解析CAC会议投稿全流程,重点介绍LaTeX模板调整、Turnitin查重技巧及PDF eXpress校验避坑指南。通过实战案例和代码示例,帮助研究者高效完成IEEE格式论文投稿,避免常见技术性失误,提升投稿成功率。

weixin_29969209的博客 397

通过JLink下载实现工控MCU批量烧录实战案例

利用JLink下载工具实现高效稳定的工控MCU批量烧录,提升产线效率。案例详细解析了脚本配置与自动化流程,突出jlink下载的可靠性和可扩展性,适用于大规模嵌入式部署场景。

weixin_30205153的博客 812

第十二节:C#工业控制编程基础--输出正弦波实验

第十二节:基于c#使用开发板输出正弦波实验 文章目录第十二节:基于c#使用开发板输出正弦波实验一、实验目的:了解采集卡DA相关函数的使用。二、实验内容:利用C#生成正弦波,然后用采集卡DA输出。三、实验步骤:1.打开Visual Studio 2013,新建窗体应用程序项目,配置好板卡dll文件。2.在窗体中放入控件,对控件进行布局排版,并修改他们的Name属性和Text属性。3.在Chart控件内选择Spline型图表,如图2。4.进入编程区域,在public partial class Form1 :

weixin_49237052的博客 2296

红外回充方案之红外接收和发射/附源码(1)

本文介绍了基于NEC协议的红外回充方案实现,重点讲解了红外收发原理和GD32F330单片机的接收端实现。文章首先说明采用38kHz载波和一体化红外接收管的设计优势,能有效抗环境光干扰。接着详细解析NEC协议格式,包括9ms起始信号、地址码、命令码及其反码校验机制,并给出逻辑1和0的调制方式。在接收端实现上,展示了GD32F330定时器输入捕获配置代码,通过双边沿触发测量脉冲宽度进行解码。文章还提供了状态机设计思路和数据结构,为低成本机器人红外回充方案提供了完整的技术实现方案。

m0_59406757的博客 1237

别再只跑recon-all了!FreeSurfer实战:从T1图像到freeview可视化的完整避坑指南

本文详细解析FreeSurfer从T1图像处理到freeview可视化的全流程,包括环境配置、recon-all深度解析、高级可视化技巧及性能优化策略。特别针对常见错误提供解决方案,帮助用户高效完成MRI数据分析,避免常见陷阱。

weixin_33404102的博客 353

手把手教你学simulink实例--Simulink在电动汽车故障诊断与预测中的应用仿真

通过上述步骤,我们成功实现了基于Simulink的电动汽车故障诊断与预测仿真。该系统能够全面评估故障诊断与预测算法的性能,验证其在不同故障场景下的有效性,并通过优化设计提高系统的可靠性和安全性。引入智能算法:结合人工智能技术,实现更智能的故障诊断与预测。扩展功能:增加对多种车型和故障类型的支持,提升系统通用性。实验验证:将仿真模型应用于实际硬件,进行实验验证,评估其在实际工况下的表现。

MHD0815的博客 256

Ultralytics 框架中predict 与 track 的区别

在 Ultralytics 框架中,predict 和 track 是两种不同的推理方法,分别用于目标检测(或分割、姿态估计)和目标跟踪任务。

浩瀚之水的专栏 1126

C#与欧姆龙PLC 通信——Fins Tcp协议

该调试助手专门为了帮助大家学习以及测试Fins-Tcp通信,下面进行详细介绍。

qq_34059233的博客 2082

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

下一篇: 算法学习汇总(java)
ccesss
博客等级 码龄5年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值