tcp/ip协议栈及相关使用场景

tcp/ip协议栈: 是互联网的主流协议

1) 四层模型

a) 网络接口层->网络层->传输层->应用层
b) 网络接口层: 与物理介质交互
c) 网络层: ip协议,arp协议
d) 传输层: tcp协议,udp协议
e) 应用层: http协议,ftp协议,smtp协议

2) http协议

a) 建立在请求/响应模型上的, 超文本传输协议,无状态协议
b) 首先由客户端建立与服务器的TCP连接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息
c) 服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息
d) HTTP1.0为每次HTTP请求/响应建立新的TCP连接,因此一个HTML页面需要建立多次短期的TCP连接
e) HTTP1.1只建立一次TCP连接,并重复地使用它传输一系列的请求/响应消息,减少了连接建立的次数和连接开销
f) HTTP是基于TCP的协议,很多协议都是基于tcp,udp这两个基本协议的,http协议只是其中之一
g) 在Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息
h) http请求主要有请求头(header: accept/referer/content-type/host/cookie)和请求体(body)组成

3) tcp协议

a) 传输层控制协议,面向字节流传输
b) 面向连接的协议,在收发数据前,必须和对方建立可靠的连接
c) 通过三次握手建立起连接
d) 为应用程序提供可靠的通信连接, 对可靠性要求高的数据通信系统往往使用TCP协议传输数据
e) TCP 是通过重新传输、确认和校验和的方式来确保可靠
f) 慢,效率低,占用系统资源高,易被攻击
g) 因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击
h) 应用场景: 文件传输,发邮件等

4) udp协议

a) 用户数据报协议
b) 是一个非连接的协议,传输数据之前源端和终端不建立连接,不管对方状态就直接发送,像发短信一样,直接发
c) 由于不建立连接,也就不需要维护连接状态,因此一台服务机可同时向多个客户机传输相同的消息
d) 适用于一次只传送少量数据、对可靠性要求不高的应用环境
e) ping命令来测试两台主机之间TCP/IP通信是否正常,原理就是向对方主机发送UDP数据包,对方主机确认收到数据包
f) QQ就使用UDP发消息,因此有时会出现收不到消息的情况
g) UDP Flood攻击
h) 应用场景: 视频传输,实时通信

5) socket

a) 为了实现tcp/udp通信而建立起来的通信管道
b) 客户端和服务器端双方进程通过socket进行通信,而通信的规则采用指定的协议
c) socket只是一种连接模式,不是协议
d) 用socket可以创建tcp连接,也可以创建udp连接
e) 网络进程间通信的原理
ip地址可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。ip地址,协议,端口三者就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互
f) Socket通信的步骤
创建ServerSocket和Socket
打开连接到Socket的输入/输出流
按照协议对Socket进行读/写操作
关闭输入输出流、关闭Socket

6) 总结

tcp/udp是传输层协议,主要解决数据在网络中传输;http是应用层协议,解决如何包装数据

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本
嵌入式Linux网络体系结构设计与TCP/IP协议栈紧密相关。嵌入式Linux操作系统是为嵌入式设备设计的一种轻量级操作系统,而TCP/IP协议栈是网络通信中最基础的协议。在嵌入式Linux中,网络体系结构设计的目标是实现高效稳定的网络通信功能。 嵌入式Linux网络体系结构设计通常由两部分组成:网络驱动程序和协议栈。网络驱动程序负责与物理网络接口进行通信,处理硬件设备的输入输出以及网络数据包的传输。而协议栈则负责解析网络数据包,进行协议的处理和数据包的封装转发。 TCP/IP协议栈是网络通信中最常用的协议栈,它包含了网络层的IP协议、传输层的TCPUDP协议以及应用层的各种协议。在嵌入式Linux中,TCP/IP协议栈的设计需考虑性能、资源占用和可靠性等因素。 嵌入式Linux网络体系结构设计需要根据具体的应用场景进行调整。对于资源有限的嵌入式设备,可以选择裁剪协议栈中的某些功能来降低资源占用。同时,还需要考虑网络通信的性能和延迟要求,合理分配处理器和内存资源,以确保网络通信的稳定和高效。 在实际开发中,可以选择成熟的开源TCP/IP协议栈,如Linux内核自带的协议栈或者lwIP协议栈等。这些协议栈经过长期的实践和优化,已具备较高的稳定性和可靠性,并且可以根据需要进行灵活的配置和扩展。 总之,嵌入式Linux网络体系结构设计与TCP/IP协议栈紧密相关,需要综合考虑资源占用、性能和可靠性等因素,选择合适的协议栈,并根据具体应用场景进行调整,以实现高效稳定的网络通信功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值