目录
TCP和UDP协议是我们经常使用到的协议,关于网络协议这一方面理解起来较为抽象复杂,这两个协议其实都属于传输层协议,但是它们之前的区别与联系却暗含了很多的知识点,关于TCP和UDP编程可以参考之前的博客链接,这篇文章梳理了相关的知识点,图片来源于大佬分享的一篇文章,原文在这里
再谈传输层
因为两个协议都是传输层的协议,我们再来回顾一下传输层的概念。
传输层主要负责将数据从发送端传输到接收端。其主要功能包括:①格式化信息流,②提供可靠传输。
端口号
端口号标识了一个主机上进行通信的不同的应用程序,而我们知道,在TCP/IP协议中我们常常用五元组标识一个通信。一个进程可以绑定多个端口号,但是一个端口号不能被多个进程进行绑定。
端口号范围的划分
- 0-1023:知名端口号,HTTP,FTP,SSH这些广泛使用的应用层协议,它们的端口号都是固定的;
- 1024-65535:操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个范围内进行划分的。
常见的端口号
- SSH服务器:22号端口;
- FTP服务器:21号端口;
- telnet服务器:23号端口;
- HTTP服务器:80端口;
- HTTPS服务器:443端口。
查看知名端口号命令:
cat /etc/services
nestat
用来查看网络状态,这个在之前socket编程时简单提起怎么使用,它的常用选项如下:
- -n 拒绝显示别名,能显示数字的全部转化成数字;
- -l 仅列出有在Listen (监听)的服务状态;
- -p 显示正在使用Socket的程序识别码和程序名称;
- -t (tcp)仅显示tcp相关选项;
- -u u (udp)仅显示udp相关选项;
- -a (all)显