12_tcp_ip相关概念
java基础班 网络编程应该提过。大学学计算机或者是通信的对这些东西肯定比较熟一些。主机到网络层是跟硬件相关的一些协议了。上层协议得依赖下层的协议。也就是说它们得联合起来共同工作才能够把数据传输出去。应用层要调用传输层的也依赖传输层的,传输层要依赖网络互联层。网络互联层最终要把数据发出去还要依赖最下面的主机到网络层,最终才会把这个数据发出去。所以四层的结构咱们要搞清楚。
要知道HTTP、TCP、IP协议分别都处于哪一层。好了,这个四层的模型咱们要搞清楚。‘
8080代表当前这台主机运行的这么一个软件,它占用的是哪一个端口。端口是不会重复的,一旦有程序占用了8080这个端口,如果你tomcat是后起来的话,那这个时候它就启动不了了。这个端口被别人占用了。
在IP的基础之上有一个TCP/UDP协议。TCP:面向连接 UDP:面向无连接的。TCP:像送快递的,第一次握手给你打电话,你说送过来吧,然后就给你送过来了。
第一次就是发了一个数据包,其实这个数据包就是想把连接打开的,这三次握手其实就是把连接创建起来。三次握手之后连接才真正创建,这个时候才可以进行数据的传输。断开的时候TCP还有四次的挥手。
第一次挥手就是我现在马上要关闭了,发送一个断开连接的请求,然后服务端给它回一句,好了,你可以断了。在第一次和第二次挥手的时候还是有数据进行传输的。然后服务端就等一下,有一个CLOSE-WAIT.等一下服务端的数据彻底的传过去之后,又给客户端发一条消息我现在彻底断开了。客户端收到服务端的消息,就可以断开了。接下来客户端也不会给服务端传数据了。所以就一共是四次通信/四次挥手。
三次握手和四次挥手保证了TCP连接相对来讲是比较安全的。HTTP协议是在TCP协议基础之上的。所以HTTP协议相对来讲也是比较靠谱的。大部分情况下,网络没有问题的情况下,很少会出现数据丢失的情况。
UDP:面向无连接,邮局。往信箱一丢,至于这个信封有没有人收到它不管。
UDP就不一样了,它直接就发。比如咱们这个飞秋,飞秋实际上用的就是UDP,这个东西你只要在线就能收到。如果不在线这个消息一样可以发,但是发完了那个人不见得会收到。这个就是TCP和UDP的区别。
TCP是协议,socket是java搞的做TCP/IP开发的一套接口/API.ServerSocket这边等待客户端的连接,客户端new一个socket传一个IP,传一个端口,就可以跟我的服务端建立一个连接。这个就是咱们要搞清楚的一个socket和TCP/IP它们之间的关系。实际上TCP/IP这一套协议实际上它不包含socket,跟socket没啥关系,在java下你要做TCP/IP相关的开发你要用到的API就是socket套接字。
12_tcp_ip相关概念的更多相关文章
- IDDD 实现领域驱动设计-上下文映射图及其相关概念
上一篇:<IDDD 实现领域驱动设计-理解限界上下文> 距离上一篇有几天时间了,<实现领域驱动设计>第三章的内容都是围绕一个词-上下文映射图,我大概断断续续看了几天,总共看了两 ...
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- C#并行编程-相关概念
菜鸟初步学习,不对的地方请大神指教,参考<C#并行编程高级教程.pdf> 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 C# ...
- Java笔记1-Java相关概念和如何实现跨平台
一.Java相关概念 1.Java语言的核心特点跨平台面向对象 2.Java的历史版本JDK1.0,JDK1.1,JDK1.2....JDK5.0,JDK6.0,JDK7.0,JDK8.0 注意:JD ...
- Android开发学习总结——Android开发的一些相关概念
一.什么是3G.4G 1995年问世的第一代模拟制式手机(1G)只能进行语音通话. 1996到1997年出现的第二代GSM.CDMA等数字制式手机(2G)便增加了接收数据的功能 3G指的是第三代移 ...
- JMS相关概念
1.相关概念 1)JMS jms即Java消息服务(Java Message Service) 是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息 ...
- Scrum 的相关概念
Scrum 的相关概念 4.1 Scrum 的起源 Scrum 是一种灵活的敏捷软件开发管理过程,这个名词来源于英式橄榄球.Scrum方法由Ken Schwaber和Jeff Sutherland ...
- linux设备驱动归纳总结(四):2.进程调度的相关概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-65555.html linux设备驱动归纳总结(四):2.进程调度的相关概念 xxxxxxxxxxxx ...
- linux设备驱动归纳总结(四):1.进程管理的相关概念【转】
本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...
随机推荐
- HDMI速率计算
我们在采集HDMI口的数据时,首先肯定要计算它的速率是多少.怎么计算这个速率,本文要跟大家分享的便是这个事情. HDMI口有三个TM-DS(Time Minimized Differential Si ...
- idea刷新项目、清除项目缓存
点击File -> Invalidate caches ,点击之后在弹出框中点击确认,之后软件就自动重启了
- *Android 多线程下载 仿下载助手(改进版)
首先声明一点: 这里的多线程下载 并非指的 多个线程下载一个 文件.而是 每一个线程 负责一个文件. 真正的多线程 希望后面能给大家带来. ------------- 欢迎 爱学习的小伙伴 加群 ...
- vue directive demo
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- asp识别手机端
<script type="text/javascript"> var mobileAgent = new Array("iphone", &quo ...
- 神经网络实现Discuz验证码识别
最近自己尝试了网上的验证码识别代码项目,该小项目见以下链接: https://cuijiahua.com/blog/2018/01/dl_5.html 数据也就用了作者上传的60000张Discuz验 ...
- java关于数组之间的相互赋值
java中数组是被当作对象看待,假设a,b为两个已经初始化的数组,那么语句a=b就表示把b数组对象的引用赋值给a,那么a和b就指向了同一个数组,无论用哪个来操作都影响其指向的数组.原来a指向的数组现在 ...
- Transforming Auto-encoders
http://www.cs.toronto.edu/~hinton/absps/transauto6.pdf The artificial neural networks that are used ...
- aop学习总结二------使用cglib动态代理简单实现aop功能
aop学习总结二------使用cglib动态代理简单实现aop功能 模拟业务需求: 1.拦截所有业务方法 2.判断用户是否有权限,有权限就允许用户执行业务方法,无权限不允许用户执行业务方法 (判断是 ...
- Spring 4.2框架中注释驱动的事件监听器详解
事件交互已经成为很多应用程序不可或缺的一部分,spring框架提供了一个完整的基础设施来处理瞬时事件.下面我们来看看Spring 4.2框架中基于注释驱动的事件监听器. 1.早期的方式 在早期,组件要 ...