tcp/ip知识点的总结

知识点搜集于网络,在加上自己的总结,还有很多不全,希望大家多提意见,共享学习!

一、TCP/IP是什么?

TCP/IP是一个协议族,而不是单独的协议。包括arp、ip、icmp、tcp、udp、http、ftp等协议

二、TCP/IP分层

      

从上面两个图表中可以看出ARP和RARP协议处于的网络层次不同。由于IP协议使用了ARP协议,所以经常把ARP协议划归到网络层,但是ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址即MAC地址,所以有些地方也把ARP协议划归到数据链路层,但是一般情况下,我们还是把ARP和RARP协议划分到网络层,这个没有明确的界限。

网络接口层关键元素:MAC,网络层关键元素:IP,传输层关键元素:端口号

三、TCP/IP数据包的封装和分用

1、封装过程,协议栈从上到下,如图:

数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层收到数据都要增加一些首部信息(有时候还要增加一下尾部信息),最后到达以太网,也就是数据链路层,这时候把这这个比特流叫做帧。

2、数据分用过程,从协议栈由下往上,如图:

目的主机收到以太网数据帧后,首先去掉各层协议加上的报文首部,同时每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议

四、TCP协议的三次握手和四次挥手

1、三次握手

2、四次挥手

3、为什么是三次握手,四次挥手?

握手3次原因:tcp中,一方接收到syn报文后,需向对方回应一个ack。三次握手中,第一个是syn报文,第二个是ack、syn报文,第三个ack报文。这样就都回应了ack,需要3次。

挥手4次原因:tcp中,一方接收到fin报文后,需向对方回应一个ack,并且tcp可以实现半关闭。4次挥手中,第一个fin报文,第二个ack报文(它可能还要继续传送数据),第三个是fin报文(它已经不需要继续传送数据了),第四个ack报文。这样就都回应了ack,需要4次

能否挥手3次:能。收到第一个fin报文后,它自己也不需要传送数据了,回应fin、ack报文,对方再回应ack,总共三次,挥手完毕。实际中抓报文,有很多这样的情况。

如果出现异常断开情况,那么会直接发送RST报文,这种情况是两次握手

五、TCP和UDP区别

1、TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后通过四次挥手结束连接。而UDP是无连接的
2、TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性,但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序送到
3、TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节
4、TCP有流量控制和拥塞控制,UDP没有,网络拥堵不会影响发送端的发送速率
5、TCP是一对一的连接,而UDP则可以支持一对一,多对多,一对多的通信
6、TCP面向的是字节流的服务,UDP面向的是报文的服务

六、TCP半连接状态(半开连接,半关连接)

半开连接:

TCP的半开连接是指TCP连接的一端异常崩溃,或者在未通知对端的情况下关闭连接,这种情况下不可以正常收发数据,否则会产生RST(后面内容我们在介绍RST)。
比如一个常见的情况是TCP连接的一端异常断电,就会导致TCP的半开连接。如果没有数据传输,对端就不会知道本端的异常而一直处于ESTABLISHED状态。
TCP半开连接是指发送了TCP连接请求,等待对方应答的状态,此时连接并没有完全建立起来,双方还无法进行通信交互的状态,此时就称为半连接。
由于一个完整的TCP连接需要经过三次握手才能完成,这里把三次握手之前的连接都称之为半连接。

半关闭连接:

TCP的半关连接是指TCP连接只有一方发送了FIN,另一方没有发出FIN包,仍然可以在一个方向上正常发送数据。这种场景并不常见,一般来说Berkeley sockets API调用shutdown()接口时候就会进入半关闭状态(调用常规的close()一般是期待完整的双向关闭这个TCP连接),shutdown()接口相当指示程序,本端已经没有数据待发送,所以我发送一个FIN到对端,但是我仍然想要从对端接收数据,直到对端发送一个FIN指示关闭连接为止。

原文地址:https://www.cnblogs.com/stupidbug/p/8325472.html

时间: 2024-11-13 06:36:17

tcp/ip知识点的总结的相关文章

TCP/IP知识点汇总

1.HUB.Switch.Router在OSI模型中分别是第几层设备,各层的名称是什么? 2.TCP/IP 协议栈及 OSI 参考模型详解

TCP /IP 完整知识点

TCP/IP 1. OSI与TCP/IP各层的结构与功能,都有哪些协议. 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,

【Java TCP/IP Socket】Socket编程知识点总结

简介 1.协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构.交换方式.包含的意义以及怎样对报文所包含的信息进行解析. 2.TCP/IP协议族有IP协议.TCP协议和UDP协议. 3.TCP协议和UDP协议使用的地址叫做端口号,用来区分同一主机上的不同应用程序.TCP协议和UDP协议也叫端到端传输协议,因为他们将数据从一个应用程序传输到另一个应用程序,而IP协议只是将数据从一个主机传输到另一个主机. 4.在TCP/IP协议中,有两部分信息用来确定一个指定的程序:互联网地址和端口号:

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

Android网络编程系列 一 TCP/IP协议族

在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必要进一步的了解,这就要我们了解网络通信层了,提到网络通信层不得不说起ISO-OSI的七层协议经典架构,如图所示: 上图的左边部分就是osi架构模型了, ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标

TCP/IP协议详解内容总结(怒喷一口老血)

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

【转】TCP/IP详解学习笔记(二)

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0    *               255.

TCP/IP漫游

TCP/IP漫游 TCP/IP是互联网的基础协议栈,它包括大大小小几十个协议.本篇文章主要涉及到就是HTTP.TCP.IP协议.我们经常学的网络模型是七层或者五层,实际上一般认为一共只有四层就可以了. Application layer ->HTTP-------------------------- Transport layer ->TCP-------------------------- Internet layer ->IP--------------------------

《图解tcp/ip》读书笔记(二)

<图解tcp/ip>读书笔记(二) 本周主要阅读的是本书的第三章--数据链路. 当然了,从某些角度讲,我认为这一章就是计算机网络的最基本的内容之一.整章讲述了数据链路层的作用和相关技术,主要描述了以太网.无线通信.ppp.公共网络以及其他的一些数据链路一些细节性的技术. 由于之前已经学习过相关计算机网络的课程,因此,就不再详细的记录整个阅读内容了,很多让我突破以前思维定式的一些知识,我挑一些列在下面. 其实这些知识花几分钟.几个小时,就可以得到,或者查阅互联网会得到比这本书更新的技术,但是,有