前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >TCPIP协议:传输层几个重要的概念知识

TCPIP协议:传输层几个重要的概念知识

原创
作者头像
IT技术分享社区
发布2024-12-23 10:15:28
发布2024-12-23 10:15:28
3510
举报
文章被收录于专栏:运维运维

今天给大家介绍TCP/IP协议当中传输层几个重要概念,希望对大家理解TCP/IP协议提供一些帮助!

一、面向连接的协议和无连接协议介绍

1.1 面向连接的协议

面向连接的协议它在发送数据之前需要先建立连接,确保数据传输的可靠性和顺序性。该协议协议类似于电话通信,需要先拨号建立连接,然后进行通话,最后挂断电话。面向连接的协议通常用于对数据传输质量要求较高的应用场景,如文件传输、电子邮件、远程登录等。最典型的就是TCP协议。

1.2 无连接协议

该协议不需要在发送数据之前建立连接。每个数据包都是独立寻址和传输的,类似于寄信,每封信都有自己的地址,邮局根据地址将信件投递到目的地,具体对方有没有收到信件则无需关心。可以理解为单向传递协议。无连接协议普遍用于对实时性要求较高,但对数据传输质量要求相对较低的应用场景,如视频流、音频流、实时游戏等场景。最典型的就是UDP协议。

二、端口和套接字

2.1 端口(Port)

端口属于标识计算机不同应用程序或服务的逻辑连接点。端口号被用来区分不同的应用程序或服务。端口号范围从0到65535。根据数值范围,分为三种类型:

熟知端口:范围从0到1023,通常用于常见的网络服务,如HTTP(端口80)、FTP(端口21)、SSH(端口22)等。

注册端口:范围从1024到49151,一般用于用户注册的应用程序或服务,比如1433 SQLserver数据库默认端口、3306 Mysql默认端口、3389 远程连接端口等。

动态或私有端口:范围从49152到65535,一般由客户端程序在建立连接时随机选择。

TCP常见的端口号

服务

端口号

简要描述

tcpmux

1

TCP 端口服务多路复用器

compressnet

2

管理工具

compressnet

3

压缩工具

echo

7

回显

discard

9

抛弃或空

systat

11

用户

daytime

13

时间

netstat

15

网络状态

qotd

17

每日引用

chargen

19

字符生成器

ftp-data

20

文件传输协议数据

ftp

21

文件传输协议控制

ssh

22

安全 Shell

telnet

23

终端网络连接

smtp

25

简单邮件传输协议

new-fe

27

NSW 用户系统

time

37

时间服务程序

name

42

主机名称服务程序

domain

53

域名服务程序(DNS)

gopher

70

Gopher 服务

finger

79

Finger

http

80

WWW 服务

link

87

TTY 链接

supdup

95

SUPDUP 协议

pop2

109

邮局协议 2

pop3

110

邮局协议 3

auth

113

身份验证服务

uucp-path

117

UUCP 路径服务

nntp

119

USENET 网络新闻传输协议

nbssession

139

NetBIOS 会话服务

UDP 常见的端口号

服务

端口号

描述

echo

7

回显

discard

9

抛弃或空

systat

11

用户

daytime

13

时间

qotd

17

每日引用

chargen

19

字符生成器

time

37

时间服务程序

domain

53

域名服务程序(DNS)

bootps

67

引导程序协议服务/DHCP

bootpc

68

引导程序协议客户端/DHCP

tftp

69

简单文件传输协议

ntp

123

网络时间服务

nbname

137

NetBIOS 名称

snmp

161

简单网络管理协议

snmp-trap

162

简单网络管理协议 trap

说明:在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一地确定一条TCP连接。

2.2 套接字(Socket)

套接字可以理解为网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。套接字属于应用程序通过网络协议进行通信的接口,有是应用程序与网络协议栈进行交互的接口。

套接字有三种类型:

流式套接字(Stream Sockets):即TCP套接字,用SOCK_STREAM表示,提供面向连接的、可靠的数据传输服务。

数据报套接字(Datagram Sockets):即UDP套接字,用SOCK_DGRAM表示,提供无连接的、不可靠的数据传输服务。

原始套接字(Raw Sockets):用SOCK_RAW表示,允许直接访问底层网络协议,一般用于开发新的网络协议或进行网络诊断。

说明:套接字是网络编程的基础,通过套接字应用程序可以实现跨网络的进程间通信。

三、多路复用和多路分解

3.1 多路复用

多路复用是指服务器使用一个单独的套接字来同时处理来自不同客户端的数据。多路复用的目的是让不同的程序共享一个网络连接来发送信息,

实际案例:比如你家里的水管可以同时给多个地方供水,比如厨房、浴室和洗衣机。TCP多路复用就像是这样,它允许一台电脑上的不同程序(如浏览器、邮件客户端等)通过同一个网络连接与互联网通信。这样做的好处是节省资源,因为不需要为每个程序单独建立新的连接。

3.2 多路分解

多路分解是指服务器在收到来自多个客户端的数据时,能够将这些数据分解成独立的流,并将它们发送给相应的客户端,多路分解主要是确保回来的信息能准确地送到对应的程序中。

实际案例:考虑水从外面回到你家,但这次每滴水都知道要去哪里——有的去厨房,有的去浴室。TCP多路分解就是这个过程:当信息从互联网返回你的电脑时,计算机知道哪些信息应该发送给哪个程序。例如,浏览器收到的网页内容不会被误发给邮件客户端。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、面向连接的协议和无连接协议介绍
    • 1.1 面向连接的协议
    • 1.2 无连接协议
  • 二、端口和套接字
    • 2.1 端口(Port)
    • 2.2 套接字(Socket)
  • 三、多路复用和多路分解
    • 3.1 多路复用
    • 3.2 多路分解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档