(6)TCP与UDP之传输层的作用

TCP/IP当中有两个具有代表性的传输层协议:
TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)
TCP提供可靠的通信传输
UDP常常被用于广播和细节控制交给应用的通信传输
选择合适的传输层协议是非常重要的

1.传输层的定义

IP数据包的首部由一个协议字段:用来标识网络层(IP)的上一层所采用的是哪一种传输层协议
由这个字段的协议号就可以判断出识别IP传输的数据部分是TCP/UDP的内容
传输层的TCP和UDP,为了识别自己所传输的数据应该发给哪个应用也应该有一个编号
通常一台计算机中运行着很多的应用程序,非常有必要将这些程序进行区分
利用端口号这个识别码来时不传输层的上一层应用层中具体的处理程序
一个程序可以使用多个端口
这里的端口与路由器和交换机等设备上的路由器不同

2.通信处理(传输层的协议工作机制)

TCP/IP中的很多应用协议以客户端/服务端的形式运行
客户端是请求的发起段
服务端是提供服务的一端
服务端的程序有必要提前启动,因为客户端有可能随时发送请求,因此服务端应该保证时刻接收客户端的请求,才可以做相应的处理
常用的服务器的信息如下:
服务程序名字:httpd sshd ftpd
相关协议名字:HTTP SSH FTP
使用的端口号:80 20 21
服务端:鉴于是发给端口80的TCP请求连接的包(SYN包),将数据转发给在80端口上一直监听着httpd的程序即可
客户端:为了接受HTTP服务,向端口为80的目标地址发送TCP连接请求包(SYN包),并将自己的本地端口设置为2000
服务端程序在linux、unix中叫做守护进程
HTTP的服务端程序是httpd(HTTP守护进程)
ssh的服务端程序是sshd(SSH守护进程)
在unix系统中并不需要将这些守护进程逐个启动,启动一个可以代表它们接收客户端请求的inetd(互联网守护进程)的服务程序即可
它其实也是一种超级守护进程,该超级守护进程收到客户端请求以后会创建(fork)新的进程并且转换(exec)为sshd等各个守护进程
服务器确认客户端发来的究竟是给哪个服务的(守护进程的),可以通过收到的数据包中的目标端口号轻松识别
当收到TCP的建立连接请求的时候,如果目标端口是22,则转给sshd;如果目标端口是80,则转给httpd
守护进程会继续对这些连接上的通信进行传输处理
其实传输协议TCP、UDP通过接收数据中的目标端口号识别目标处理程序
传输协议的数据将被传给HTTP、TELNET以及FTP等应用层协议

3.两种传输层协议TCP和UDP

  • (1)TCP
    TCP是面向连接的、可靠的流协议
    流指的是不间断的数据结构,可以比作水流
    当应用程序采用TCP发送消息的时候,虽然发送的顺序很可靠,但是发给接收端的数据流之间其实还是没有数据间隔的
    TCP为了提供可靠的数据传输,实行"顺序控制"或者"重发控制"机制、还有流量控制、拥塞控制、提高网络利用率很多功能
  • (2)UDP
    UDP是一个不可靠的数据包协议,一些细微的处理它会交给上层的应用去完成
    虽然可以保证发送消息的大小,但是不能保证消息一定会到达
    应用有时候根据自己的需要进行重发处理

4.TCP与UDP区分

TCP用于在传输层实现必要的可靠传输
UDP主要用于高速传输和实时性高的通信或者广播通信
其实广播的协议也要依赖于UDP
电话通信当中就要使用UDP
二者按照自身的优点去使用即可

5.套接字(Socket)

使用TCP或者UDP的时候,会用到操作系统的类库
这种类库一般被称为API,应用编程接口
应用程序利用套接字,可以设置对端的IP地址、端口号、实现数据的发送与接收

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值