TCP/IP

概念

TCP/IP :1.用于因特网 (Internet) 的通信协议(对那些计算机必须遵守以便彼此通信的规则的描述);

                2.是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合(协议簇);

                3.定义了主机如何连入因特网及数据如何在它们之间传输的标准;

                4.TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们,IP 负责将包发送至接受者;


TCP和UDP的区别

TCP:面向连接的,可靠的;

UDP:无连接的,不可靠的,开销小传输速率高,实时性好;


OSI七层网络模型与TCP/IP四层模型

层图

OSI是一个理想的参考模型,一般的网络系统只涉及其中的几层。

应用层(Application):为用户的应用程序提供网络服务(文件传输服务FTP、远程登录服务Telnet、电子邮件服务等);

表示层(Presentation):将应用层命令数据进行解释并传给会话层(编码、加解密、解压缩等);

会话层(Session):负责在网络中的两节点之间建立、维持和终止通信;

传输层(Transport):接收会话层数据,必要分割数据并交给网络层(TCP传输控制协议与UDP用户数据报协议);

网络层(Network):路由与寻径,建立网络连接和为上层提供服务;

数据链路层(Datalink):数据通道,在不可靠的物理线路上进行数据的可靠传递;

物理层(Physical):网络传输的物理媒体部分,如网卡,网线,集线器,中继器,调制解调器等;

TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中。

应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等;

传输层:TCP,UDP;

网络层:IP,ICMP,OSPF,EIGRP,IGMP;

数据链路层:SLIP,CSLIP,PPP,MTU;


三次握手

序号:

        seq:32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记;

        ack:确认序号,ack=seq+1(只有ACK标志位为1时,确认序号字段才有效);

标志位:

        SYN(synchronous):发起一个新连接;

        ACK(Acknowledgement):确认序号有效;

        FIN:释放一个连接;

三次握手

第一次握手:客户端A将标志位SYN置为1,并随机产生一个值seq=x发送给服务端,A并进入SYN_SENT状态,等待服务器B确认;

第二次握手:B收到数据由SYN=1知道是A请求建立连接(确认ACK=1,ack=x+1,seq=y),B进入SYN_RECV状态;

第三次握手:A收到B的确认(ACK=1,ack=y+1,seq=x+1),B接收并检查成功,则A和B进入ESTABLISHED状态完成三次握手;

三次握手之后客户端与服务器开始传输数据。

注:为什么要第三次握手?

       防止已失效的连接请求又传送到服务器端,因而产生错误。(为了保证连接时双工的)

     (A发送1失效,发送2,服务器确认2并建立连接后,突然1又传送到服务器的情况,此时A不对B的确认进行确认,则保证不开启无效连接)


四次挥手

四次挥手

第一次挥手:A发送连接释放报文,FIN=1,并进入FIN-WAIT-1(终止等待1)状态;

第二次挥手:B收到连接释放报文,发送确认报文,ACK=1,并进入CLOSE-WAIT(关闭等待)状态;

                      A收到B的确认请求,并进入FIN-WAIT-2(终止等待2)状态,此时A等待B发送连接释放报文并能正常接收数据;

第三次挥手:B发送连接释放报文,FIN=1,并进入LAST-ACK(最后确认)状态;

第四次挥手:A收到B连接释放报文,发出确认,ACK=1,并进入TIME-WAIT(时间等待)状态;

                      B收到A的确认,立即进入CLOSED状态,A经过2∗∗MSL(最长报文段寿命)的时间也进入CLOSED状态;

注:1.为什么要四次挥手?

           B收到A的释放连接发送确认,此时可能还有数据需传给A所以不一起发送FIN,等数据传完才发FIN;

       2.TIME_WAIT状态?    

           用来重发可能丢失的ACK报文

        (假设网络不可靠,B发FIN,A发ACK丢失,B未收到则重发FIN,A-TIME_WAIT等待阶段又收到FIN可重发ACK)


寻址

IP地址:1.每个计算机必须有一个 IP 地址才能够连入因特网;

               2.每个 IP 包必须有一个地址才能够发送到另一台计算机;

编址:TCP/IP 使用 32位二进制来为计算机编址,数字在0到255之前。(eg:112.65.143.26 -介于 0 到 255 之间的 4 个数字)

        (1字节=8bit,所以编址采用4字节,一个字节取值在00000000、00000001....11111111,即0~255)

域名:用于 TCP/IP 地址的名字被称为域名(eg:w3school.com.cn,因为IP地址不好记)

        (域名会被DNS程序翻译成数字,全世界有数量庞大的DNS服务器接入因特网,负责将域名翻译为 TCP/IP 地址以及更新)


协议族

TCP - 传输控制协议:1.用于从应用程序到网络的数据传输控制;

                                    2.负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组;

IP - 网际协议:1.负责计算机之间的通信;

                         2.负责在因特网上发送和接收数据包;

HTTP - 超文本传输协议:1.负责 web 服务器与 web 浏览器之间的通信;

                                          2.用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页);

HTTPS - 安全的 HTTP:1.负责在 web 服务器和 web 浏览器之间的安全通信;

                                        2.会用于处理信用卡交易和其他的敏感数据;

UDP -用户数据包协议:应用程序之间的简单通信;

SSL - 安全套接字层:用于为安全数据传输加密数据;

SMTP - 简易邮件传输协议:用于电子邮件的传输;

MIME - 多用途因特网邮件扩展:使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据;

IMAP - 因特网消息访问协议:用于存储和取回电子邮件;

POP - 邮局协议:用于从电子邮件服务器向个人电脑下载电子邮件;

FTP - 文件传输协议:负责计算机之间的文件传输;

NTP - 网络时间协议:用于在计算机之间同步时间(钟);

DHCP - 动态主机配置协议:用于向网络中的计算机分配动态 IP 地址;

SNMP - 简单网络管理协议:用于计算机网络的管理;

LDAP - 轻量级的目录访问协议:LDAP 用于从因特网搜集关于用户和电子邮件地址的信息;

ICMP - 因特网消息控制协议:负责网络中的错误处理;

ARP - Address Resolution Protocol:用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址;

RARP - Reverse Address Resolution Protocol:用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址;

BOOTP - Boot Protocol:用于从网络启动计算机;

PPTP - 点对点隧道协议:用于私人网络之间的连接(隧道);


参考

TCP三次握手与四次挥手

握手与挥手

OSI七层网络模型

OSI七层参考模型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,497评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,496评论 0 8
  • 协议基础 协议就是计算机之间通过网络实现通信时实现所达成的一种“约定”,这种约定使得那些由不同厂商的设备,不同的C...
    d9fc24a0c9a9阅读 7,079评论 0 6
  • TCP/IP概述 TCP/IP起源于1969年美国国防部(DOD:The United States Depart...
    zhf_Zachariah阅读 11,076评论 6 114
  • 同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍。 一、 计算机网络体系结构分层 二、 TCP/IP 基础...
    涤生_Woo阅读 65,946评论 38 1,037

友情链接更多精彩内容