TCP/IP速记
网络协议
计算机网络的核心就是网络协议。网络协议是计算机网络中为了数据交换而建立的规则。
OSI七层模型和TCP/IP五层模型
在实际运用中,最终是TCP得到了广泛的应用。
OSI是一种设计得非常详细的协议,而问题就是出在详细上;因为实际的情况往往比想象中的更加多变和灵活,所以OSI的详细本该成为它的优势,但却成为了其限制。
王老师的思想迁移:不光是这种协议的发展规律,生活中很多事情都是这样,不能等完完全全准备好了再去做,而是在做的过程中不断改进,不断适应,就TCP/IP一样,虽然更加简单,但却能经受实际的考验。
TCP/IP五层模型
- 应用层(HTTP)
- 传输层(TCP,UDP)
- 网络层(IP)
- 数据链路层
- 物理层
TCP的三次握手和四次挥手
三次握手进行连接
SYN:标志位,为1时表示请求连接
ACK:标志位,为1时表示确认请求
第一次握手:客户端向服务端发送SYN为1的请求报文
第二次握手:服务端向客户端发送ACK消息确认【此时客户端知道自己可以发送消息给服务端,而且服务端也可以发送消息给自己;但服务端只知道客户端的消息可以传过来,但不知道自己的消息能否传过去】
第三次握手:客户端向服务端发送ACK消息确认【目的:让服务端知道自己发送的消息客户端可以接收到】

四次挥手断开连接
FIN:标志位,为1时表示请求断开连接
第一次挥手:客户端向服务端发送FIN=1的报文
第二次挥手:此时服务端可能会有未发出的消息,所以先给客户端一个ACK确认消息,表示收到了客户端的请求
第三次挥手:此时服务端已经发送了所有的消息,然后向客户端发送一个FIN=1的报文,表示可以断开请求了
第四次挥手:客户端收到请求后,给服务端发送ACK确认消息

TCP连接的特点
- TCP是一种有连接,安全可靠的协议
- 点对点的通信模式
- 在传输可靠上的特性:丢包重发,流量控制
TCP是如何保证安全可靠的
宏观上来看,三次握手和四次挥手的这种有连接的机制为TCP的安全提供了基础。
更加微观的看
- 校验和(TCP头部,数据,尾部)
- 应答机制:不管是对于客户端还是服务端,每发送一个消息都需要返回一个确认消息,不然就会重发
- 超时重传:发送一个包和接受应答包这个时间如果过长,就会重新发送
- 拥塞控制:发出少量数据来测试网络拥堵情况,然后决定按多大的速度传送数据
UDP连接的特点
UDP是一种无连接,不可靠的协议
支持一对多,多对多的通信模式
TCP和UDP的区别
是否有连接
TCP是有连接的,而UDP是无连接的。连接决定是否安全可靠。
传输效率
UDP首部字节为8个,而TCP首部字节20个。所以UDP的传输效率更高。
通信模式
TCP支持点对点,UDP支持一对多,多对多
TCP和UDP首部的区别
- UDP首部只有8个字节:源端口,目的端口,校验和
- TCP超过20个字节:源端口,目的端口,校验和,SYN,ACK,FIN
HTTP请求的过程和原理
- 发起一个请求后,通过DNS将URL中的域名解析为IP地址
- 然后根据IP地址,建立与服务端的TCP连接(三次握手)
- 断开连接:四次挥手
TCP/IP速记的更多相关文章
- TCP/IP基础
TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的 ...
- TCP/IP之TCP_NODELAY与TCP_CORK
TCP/IP之Nagle算法与40ms延迟提到了Nagle 算法.这样虽然提高了网络吞吐量,但是实时性却降低了,在一些交互性很强的应用程序来说是不允许的,使用TCP_NODELAY选项可以禁止Nagl ...
- 《图解TCP/IP》读书笔记
一.国际惯例:书托 这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识.掌握TCP/IP的基本技能. 书中讲解了网络基础知识.TCP/IP基础知识.数据链路.IP协议.IP协 ...
- Atitit osi tcp ip 对应attilax总结
Atitit osi tcp ip 对应attilax总结 Atitit 网络摄像机又叫IP CAMERA(简称IPC)常见的协议组合 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模 ...
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
- 一种面向对象的TCP/IP中间件
这是一个使用C++封装的TCP/IP协议栈(仅传输层),属于本人所设计的中间件的一员,具有硬件无关,应用无关特性,使用非常方便,一看代码便知: #include "net.h" / ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
随机推荐
- CUDA Programming Guide 学习笔记
CUDA学习笔记 GPU架构 GPU围绕流式多处理器(SM)的可扩展阵列搭建,每个GPU有多个SM,每个SM支持数百个线程并发执行.目前Nvidia推出了6种GPU架构(按时间顺序,详见下图):Fer ...
- 设计模式:proxy模式
目的:为其他对象提供一种代理以控制对这个对象的访问 理解:尽管Decorator的实现部分与代理相似,但Decorator的目的不一样.Decorator为对象添加一个或多个功能,而代理则控制对对象的 ...
- idea中maven导入依赖报红的解决办法
使用idea创建maven项目,maven导入依赖报红,从以下几个步骤排查解决问题: 1.首先查看maven的安装和配置有没有问题.那么,要看那些内容呢.maven的安装位置.maven的settin ...
- git的分支远程连接和远程分支的拉取推送及冲突处理
目录 备注: 知识点 Feature分支 多人协作 推送分支 远程分支推送建议 克隆(clone)远程仓库 分支的推送和冲突处理 关联本地分支和远程分支 推送时指定分支或设置分支跟踪 拉取分支时文件冲 ...
- 微信小程序开发(一)基础知识学习
1.特点: ①无DOM对象(虚拟DOM),一切基于组件化(复用.解耦) ②四个重要文件: *.js.*.wxml --> html..wxss --> css.*.json ③无需下载 ...
- jspang 做个那个pos系统--学习笔记
/为什么不能使用Object.assign() //使用Object.assign之后数据会发生改变,但是试图没有跟新 <template> <div class="pos ...
- spring学习(五)详细介绍AOP
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待 它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封 ...
- Java容器学习之List
List接口继承了Collcetion接口,Collection接口又继承了超级接口Iterable,List是有序列表,实现类有ArrayList.LinkedList.Vector.Stack等. ...
- 如何阅读一本书——分析阅读Pre
如何阅读一本书--分析阅读Pre 前情介绍 作者: 莫提默.艾德勒 查尔斯.范多伦 初版:1940年,一出版就是全美畅销书榜首一年多.钢铁侠Elon.Musk学过. 需要注意的句子: 成功的阅读牵涉到 ...
- 无法安装 VMware Tools。尝试访问安装 VMware Tools 所需的图像文件“/usr/lib/vmware/isoimages/linuxPreGlibc25.iso”时出错: 2 (No such file or directory)。请参考产品文档或知识库文章 2129825,了解关于如何获取该客户机操作系统的 VMware Tools 软件包的详细信息。
无法安装 VMware Tools.尝试访问安装 VMware Tools 所需的图像文件"/usr/lib/vmware/isoimages/linuxPreGlibc25.iso&quo ...