TCP/IP网络知识
1.TCP/IP概念
TCP/IP不是单指一种传输协议,而是一组传输控制协议/互联网协议。
2.TCP/IP分层
(计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层大体上对应着OSl/RM模型的应用层、表示层和会话层,TCP/IP的网络接口层对应着OSI/RM的数据链路层和物理层,而传输层和网络层在两个模型中对应得很好。)
其分层关系如下图

3.TCP/IP特性
面向连接的,可靠的,基于字节流的传输层通信协议;
网络地址统一分配,网络中每一设备和终端都具有一个唯一地址;
TCP/IP不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准等。
4.TCP三次握手和四次挥手
TCP报文段首部包含:
序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号
确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号
确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效
同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接
TCP三次握手:
1.客户端向客户端发出请求报文段。(SYN=1,seq=x)
2.服务端若同意客户端的请求,则发回确认报文。(SYN=1,ACK=1,ack=x+1,seq=y)
3.客户端收到确认报文之后,通知上层应用进程连接已建立,并向服务器发出确认报文,其首部:ACK=1,ack=y+1。当服务器收到客户端的确认报文之后,也通知其上层应用进程连接已建立。(ACK=1,ack=y+1)
TCP四次挥手:
1.数据传输结束以后,客户端的应用进程发出连接释放报文段,并停止发送数据。(FIN=1,seq=u)
2.服务器端收到连接释放报文段之后,发出确认报文。(ack=u+1,seq=v)
3.若服务器已经没有要向客户端发送的数据,其应用进程就通知服务器释放TCP连接。(FIN=1,ACK=1,seq=w,ack=u+1)
4.客户端收到连接释放报文段之后,必须发出确认释放请求,然后TCP连接才真正结束。(ACK=1,seq=u+1,ack=w+1)
5.UDP特点及报文结构
特点:
面向非连接,不维护连接状态,可以同时向多个客户端传输相同的消息
数据包报头只有8个字节,额外开销小
吞吐量只受限于数据生成速率,传输速率以及机器性能等
报文结构:

6.HTTP协议
简介:
HTTP协议是应用层的超文本传输协议,是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
特点:
支持客户/服务器模式
简单快速且灵活
无连接(无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间)
无状态
消息结构:
客户端请求消息:(包含请求行,请求头部,空行,请求数据)

服务端响应消息:(包含状态行,消息报头,空行,响应正文)

更多相关知识可以查看上一篇博客:https://www.cnblogs.com/ywb-articles/p/10633270.html
TCP/IP网络知识的更多相关文章
- TCP/IP网络基础知识
TCP/IP是一组用于实现网络互联的通信协议,通常称为TCP/IP协议族.包括TCP.IP.UDP.ICMP.RIP.TELNETFTP.SMTP.ARP.TFTP等. 一.TCP/IP模型将协议分为 ...
- TCP/IP基础知识
TCP/IP基础知识 网络 TCP/IP 引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP ...
- 浅谈TCP/IP网络编程中socket的行为
我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...
- TCP/IP协议知识科普
简介 本文主要介绍了工作中常用的TCP/IP对应协议栈相关基础知识,科普文. 本博客所有文章:http://www.cnblogs.com/xuanku/p/index.html TCP/IP网络协议 ...
- Linux学习(1)- TCP/IP网络协议基础
Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...
- 《TCP/IP网络编程》
<TCP/IP网络编程> 基本信息 作者: (韩)尹圣雨 译者: 金国哲 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115358851 上架时间:2014-6- ...
- TCP/IP网络编程之多进程服务端(二)
信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非阻塞等待子进程销毁的函数,但有一个不好的缺 ...
- 第二章 TCP/IP 基础知识
第二章 TCP/IP 基础知识 TCP/IP transmission control protocol and ip internet protocol 是互联网众多通信协议中最为著名的. ...
- 对TCP/IP网络协议的深入浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
随机推荐
- Ruby on Rails 的模型 validates 验证
validate(), 这个方法在每次保存数据时都会被调用.如:def validate if name.blank? && email.blank? errors.add_to_b ...
- 自定义nagios监控脚本---磁盘检测
自定义nagios监控脚本---磁盘检测 1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.shvim /usr/local/nagios/libexe ...
- 堡垒机直接调用RUN
两个脚本 Run.vbe 参考https://blog.csdn.net/skypeGNU/article/details/12708221 set ws=wscript.createobject ...
- 短路与(&&)、短路或(||)
昨晚上课,老师用了类似这样的语法 fn&&fn.call(obj) fn&&fn.call(obj) 这里的fn为回调函数.老师在课上也没过多解释这句是啥意思,然后我 ...
- Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert
学习目的: 掌握页面常规元素的定位方法 场景: 网页正常的select元素下拉框常规方法和select专属方法 正式步骤: step1:常规思路select页面元素定位 处理HTML代码截图 # -* ...
- Unity Shader概述
一.概述 在Unity中需要配合使用材质和Unity Shader才能达到需要的效果.常见的流程:(1)创建一个材质:(2)创建一个Unity Shader,并把它赋给创建的材质:(3)把材质赋给要渲 ...
- postman 请求接口 Could not get any response
前提: 今天用postman请求接口的时候,能请求到接口,但是打断点后发现方法里面要抛出异常就出现错误: 错误原因: 返回的 http 的 code不是3位的,如下我写成了四位 4002: <? ...
- JAVA实验报告四及第六周总结
JAVA第六周作业 实验报告四 第一题 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造 ...
- React组件优化
父组件传值给子组件时只要文本框发生变化就会重新渲染render,我理解我会影响性能,记录下方法用这个生命周期 shouldComponentUpdate 的方法就可以解决子组件重复渲染的问题 shou ...
- Linux 下使用 rar 进行压缩和解压缩
1. 下载安装文件 https://www.rarlab.com/download.htm 注意下载 64位的 2. 2019.8 时的下载命令为: wget https://www.rarlab. ...