详解 TCP/IP 协议

什么是TCP/IP协议

TCP/IP通信协议是目前最完整、最被广泛支持的通信协议,它可以让不同网络架构、不同操作系统的计算机之间通信,是Internet的标准通信协议。
TCP的介绍

TCP也叫传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

UDP

  UDP是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

  TCP端口和UDP端口。由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。

常见端口号 :

  80端口分配给WWW(HTTP)服务;

  21端口分配给FTP服务

  22端口分配给Ssh服务

  23端口分配给(  邮件传输协议)Telnet (远程登录)服务

  25端口分配给SMTP服务

  110端口分配给P0P3服务

  111端口分配SUN公司的( 远程过程调用 )RPC服务所有端口,常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等

  119端口分配给NEWS新闻组传输协议

  135端口分配给DCOM服务

  161端口分配给SNTP服务



  TCP 22=远程登录协议

  TCP 23=远程登录(Telnet),Tiny Telnet Server (= TTS)

  TCP 25=电子邮件(SMTP)

  TCP 49=主机登录协议

 TCP 70=Gopher服务

 TCP 80=超文本服务器(Http),Executor,RingZero

 TCP 102=消息传输代理

 TCP 109=Pop2

 TCP 110=电子邮件(Pop3),ProMail

 TCP 115=简单文件传输协议

 TCP 156=SQL服务器

 TCP 177=X Display管理控制协议

 TCP 179=Border网关协议(BGP)

  TCP 443=安全服务(HTTPS)

 TCP 546=DHCP Client

TCP 547=DHCP Server

TCP 569=MSN

 TCP 990=ssl加密

TCP 1703=Exloiter 1.1

TCP 1723=VPN 网关(PPTP)

TCP 4000=腾讯QQ客户端

TCP 5000=WindowsXP服务器

UDP 1701=VPN网关(L2TP)

**HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
HTTPS服务器,默认的端口号为443/tcp 443/udp;**

动态端口(Dynamic Ports)

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

扫描二维码关注公众号,回复: 3635078 查看本文章

注册端口

端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。

端口号可分为3大类

  公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

  注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

    动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

什么情况下tcp进入time_wait?

当关闭一个 socket 连接时,主动关闭一端的 socket 将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态。
具体过程如下:1、 客户端发送FIN报文段,进入FIN_WAIT_1状态。2、 服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。3、 客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。4、
服务器端发送FIN报文端,进入LAST_ACK状态。5、 客户端收到FIN报文端,发送FIN的ACK,同时进入TIME_WAIT状态,启动TIME_WAIT定时器,超时时间设为2MSL。6、 服务器端收到FIN的ACK,进入CLOSED状态。7、
客户端在2MSL时间内没收到对端的任何响应,TIME_WAIT超时,进入CLOSED状态。

一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手:(如下)

这里写图片描述

TCP/IP和OSI协议

OSI:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
TCP/IP:网络接口层,互连网络层,传输层,应用层

TCP三次握手(创建 OPEN)

客户端发起一个和服务创建TCP链接的请求,这里是SYN(J)
服务端接受到客户端的创建请求后,返回两个信息: SYN(K) + ACK(J+1)
客户端在接受到服务端的ACK信息校验成功后(J与J+1),返回一个信息:ACK(K+1)
服务端这时接受到客户端的ACK信息校验成功后(K与K+1),不再返回信息,后面进入数据通讯阶段

数据通讯

客户端/服务端 read/write数据包

TCP四次握手(关闭 finish)

客户端发起关闭请求,发送一个信息:FIN(M)
服务端接受到信息后,首先返回ACK(M+1),表明自己已经收到消息。
服务端在准备好关闭之前,最后发送给客户端一个 FIN(N)消息,询问客户端是否准备好关闭了
客户端接受到服务端发送的消息后,返回一个确认信息: ACK(N+1)
最后,服务端和客户端在双方都得到确认时,各自关闭或者回收对应的TCP链接。

详解 TCP/IP 协议 :https://mp.weixin.qq.com/s/nzLhnAfno5WwMTnldLMVWw

HTTP协议中POST、GET、HEAD、PUT等请求方法及相应值得含义: https://mp.weixin.qq.com/s/_X-eqZHlWVX3QA_evR8aRA

TCP/IP 详解 :http://techlog.cn/article/list/10182929

猜你喜欢

转载自blog.csdn.net/qq_40907977/article/details/81738031