第8章 传输层(1)_TCP/UDP协议的应用场景
1. 传输层的两个协议
1.1 TCP和UDP协议的应用场景
(1)TCP协议:如果要传输的内容比较多,需要将发送的内容分成多个数据包发送。这就要求在传输层用TCP协议,在发送方和接收方建立连接,实现可靠传输、流量控制和拥塞避免。(如下载500M电影、QQ好友传输文件、浏览网页、发送电子邮件等)
(2)UDP协议:一个数据包就能发送全部内容,不需要持续发送,发送方和接收方不需要建立连接。由于就一个数据包不需要流量控制和拥塞避免,在传输层不需要负责可靠传输。如果数据包发送出去,应用程序没有收到返回的数据包,就再发送一遍,可以认为发送成功与否由应用层来判断(如发送QQ聊天内容、域名解析、多播通信、视频点播)
1.2 传输层协议和应用层协议之间的关系
(1)两者关系
①应用层协议很多,而传输层就两个协议,通常使用传输层协议加一个端口号来标识一个应用层协议。
②其它常见的应用层协议和端号
A.HTTPS默认使用TCP的443端口
B.Windows访问共享资源使用TCP的445端口
C.MSSQL数据库默认使用TCP的1433端口
D.MySQL数据库默认使用TCP的3306端口
(2)端口的分类
①服务器端使用的端口(熟知端口:0~1023,登记端口:1024~49151)
数据包中的目标IP地址是用来在网络中定位某一服务器,而目标端口是用来定位该服务器上的某个服务(如Web服务、SMTP服务和POP3服务等)
②客户端使用的端口(取值范围为49152~65535)
比如,客户端打开浏览器,窗口A访问百度,窗口B访问51cto,需要建立两个TCP连接,这时客户端计算机会临时为每个窗口分配一个端口(要求本地唯一)。两个网站返回的数据包就根据这两个目标端口不同,提交给相应的窗口来显示
1.3 实战
(1)查看侦听的端口:netstat -an (其中a表示查看所有连接和侦听端口,n表示以数字显示地址和端口,o表示显示进程PID,b表示显示进程名称(需管理员权限))
(2)测试是否开放某个端口:telnet 192.168.80.100 3389
(3)更改服务使用的默认端口
①如IIS服务器:打开IIS服务管理工具→“默认网站”→右键“属性”→“网站”选项卡中将TCP端口指定成8080等。
②远程桌面RDP:HKLM\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\下将PortNumber的值从3389改为4000(10进制)
1.4 端口与网络安全
(1)在路由器上设置访问控制列表(ACL)
(2)开启Windows防火墙(只打开特定端口)
①“控制面板”→“Windows防火墙”→“启用”。
②“例外”选项卡→“添加端口”→选择TCP或UDP。这时访问本机该协议和端口的请求将被允许。
③禁用“Windows防火墙”服务:“控制面板”→“管理工具”→“服务”→禁止“Windows Firewall/Internet Connection Sharing (ICS)”
(3)TCP/IP筛选:
①“本地连接”→“Internet协议(TCP/IP)” →“高级”→“选项”选项卡→“TCP/IP筛选” →“属性”
②勾选“启用TCP/IP筛选(所有适配器)”
③在TCP端口和UDP端口中选择“只允许”,然后添加相应的端口号。
④重启系统(注意:TCP/IP筛选不受“Windows Firewall/Internet Connection Sharing (ICS)服务”是否开启的影响)
最新文章
- Centos7 升级内核和应用TCP BBR 算法
- java-int类型:int默认为0导致更新操作未赋值的情况下将值更新为0
- js 基础
- Eclipse中Maven+Spring3.2.17+SpringMVC HelloWorld
- 分享一些WinForm数据库连接界面UI
- 日志基本概念/rSyslog
- 2019-3-22KeyDown,KeyPress 和 KeyUp 事件
- 2步安装1个hive docker运行环境[centos7]
- Mysql 语句优化
- 三台机器之间root用户ssh互信配置
- Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用
- 恒生UFX交易接口基本介绍说明
- Python入门 日志打印
- C语言一维数组定义及引用时括号[]内容
- 关于ARM Linux下的SD卡及U盘的挂载问题
- Hessian 源码简单分析
- Centos6 下安装Nginx+Mysql+PHP
- .Net Core Razor 预编译,动态编译,混合编译
- mint-ui 关于有时候官网有时候打不开的问题
- JDBC方式执行SQL,支持CRUD返回LIST
热门文章
- sofa graphql 2 rest api webhook 试用
- vue的watcher 关于数组和对象
- Promise实例的then方法
- Task.Delay() 和 Thread.Sleep() 区别
- Day 38 HTML
- [转]Java对象的序列化和反序列化
- webpack 4:默认配置
- vue监听路由变化
- 说明os,sys模块不同?并列举常用的模块方法
- petalinux--执行子进程“oe-gnome-terminal-phonehome”失败(没有那个文件或目录)(转)