tcp协议通过啥来区分不同的连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcp协议通过啥来区分不同的连接相关的知识,希望对你有一定的参考价值。

TCP协议使用端口号来区分不同的连接。端口号是一个16位无符号整数,介于0到65535之间,用于标识不同服务器上的应用程序。 参考技术A Tcp协议通过h3来区分不同的连接,因为它这个h3也就是一个检测软件,所以它这个协议需要这个检测软件来区分不同的连接。 参考技术B tcp协议使用四元组(源IP地址、源端口号、目的IP地址、目的端口号)来区分不同的连接。

网络编程——基本概念

一、概念
Ip:区分每一台计算机
端口:区分每一个软件
URL:区分软件上的不同资源
协议:就是交流的方式
TCP协议:面向连接,更安全,较低效(常应用于电话聊天等)
UDP协议:非面向连接,不安全,较高效(常应用于QQ聊天,邮箱等)
二、网络分层

OSI        TCP/IP协议集
应用层
表示层         ——应用层
会话层

传输层         —— 传输层

网络层         ——网络层

数据链路层     ——网络接口
物理层

注意:OSI网络通信协议模型知识一个参考模型,而TCP/IP协议是事实上的标准

三、IP
IP:定位一个节点:计算机、路由、通讯设备等
* InetAddress:多个静态方法
* 1、getLocalHost:本机
* 2、getByName:根据域名DNS 或IP地址-->IP
*
* 两个成员方法:
* 1、getHostAddress:返回地址
* 2、getHostName:返回计算机名

public class IPTest {
       public static void main(String[] args) throws UnknownHostException {
        //使用getLocalHost方法创建InetAddress对象 本机
        InetAddress addr=InetAddress.getLocalHost();
        System.out.println(addr.getHostAddress());//返回IP
        System.out.println(addr.getHostName());//输出计算机名
    }
}

四、端口

端口
* 1、区分软件
* 2、2个字节0-65535 UDP TCP
* 3、同一个协议端口不能冲突
* 4、定义端口越大越好
* InetSocketAddress
* 1、构造器
* new InetSocketAddress(地址|域名, 端口);
* 2、方法
* getAddress()
* getHostName()
* getPort()

public class PortTest {
    public static void main(String[] args) {
        //包含端口
        InetSocketAddress socketAddress =new InetSocketAddress("127.0.0.23", 8080);
        InetSocketAddress socketAddress2 =new InetSocketAddress("localhost", 9000);
        System.out.println(socketAddress.getHostName());
        System.out.println(socketAddress.getAddress());
        System.out.println(socketAddress.getPort());
        System.out.println(socketAddress2.getHostName());
        System.out.println(socketAddress2.getAddress());
        System.out.println(socketAddress2.getPort());
    }
}    

五:URL

URL:统一资源定位器,互联网三大基石之一(html,http),区分资源
* 1、协议
* 2、域名、计算机
* 3、端口:默认80
* 4、请求资源
* http://www.baidu.com:80/index.html?uname=shsxt&age=18#a

public class URLTest01 {
    public static void main(String[] args) throws MalformedURLException {
        URL url=new URL("http://www.baidu.com:80/index.html?uname=shsxt&age=18#a");
        System.out.println("协议:"+url.getProtocol());
        System.out.println("域名或ip:"+url.getHost());
        System.out.println("端口:"+url.getPort());
        System.out.println("请求资源:"+url.getFile());
        System.out.println("请求资源:"+url.getPath());
        
        //参数
        System.out.println("参数:"+url.getQuery());
        //锚点
        System.out.println("锚点:"+url.getRef());
    }
}

 

以上是关于tcp协议通过啥来区分不同的连接的主要内容,如果未能解决你的问题,请参考以下文章

什么是套接字(Socket)

基于QT的TCP通信服务

TCP下的套接字编程

Http协议与TCP协议

Socket(套接字) IP TCP UDP HTTP

TCP协议