日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python面试总结(四)ip正则与三次握手四次挥手

發布時間:2024/7/5 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python面试总结(四)ip正则与三次握手四次挥手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.請簡述值傳遞和引用傳遞的區別?


值傳遞僅僅傳遞的是值
引用傳遞,傳遞的是內存地址,修改后會改變內存地址對應儲存的值。



2.請手寫一個匹配ip的正則表達式?

第一種方法:
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)


第二種方法:
(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$



3.mysql數據庫的優化?



1、選取最適用的字段屬性
2、使用連接(JOIN)來代替子查詢(Sub-Queries)
3、使用聯合(UNION)來代替手動創建的臨時表
4、事務
5、鎖定表
6、使用外鍵
7、使用索引

8、優化的查詢語句


4.談談你對python多線程的理解?


線程是進程的一個實體,是CPU進行調度的基本單位,
它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統資源,
只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),
但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.


一個進程至少有一個線程.
線程的劃分尺度小,使得多線程程序的并發性高。
多個線程共享內存,從而極大地提高了程序的運行效率
線程不能夠獨立執行,必須依存在進程中
線程執行開銷小,但不利于資源的管理和保護



5.redis中的事務和mysql中的事務有什么區別?


mysql中一個中小型的網絡數據庫,比oracle和sqlserver小,?
但是并發能力遠超過acess這樣的桌面數據庫。


redis是一個支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫。
可以認為redis比mysql簡化很多。
mysql支持集群。
現在大量的軟件使用redis作為mysql在本地的數據庫緩存,然后再適當的時候和mysql同步.


6.請簡述什么是三次握手和四次揮手?為什么要這樣?


TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:


位碼即tcp標志位,有6種表示:
SYN(synchronous建立連接)
ACK(acknowledgement 表示響應、確認)
PSH(push表示有DATA數據傳輸)
FIN(finish關閉連接)
RST(reset表示連接重置)
URG(urgent緊急指針字段值有效)


三次握手:


第一次握手:客戶端發送syn包(syn=x)到服務器,并進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=x+1),
同時自己也發送一個SYN包(syn=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=y+1),
此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
? ? ? 握手過程中傳送的包里不包含數據,三次握手完畢后,
客戶端與服務器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,
在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。
? ? ? 確認號:其數值等于發送方的發送序號+1(即接收方期望接收的下一個序列號)。

四次揮手:
與建立連接的“三次握手”類似,斷開一個TCP連接則需要“四次揮手”。
第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不會再給你發數據了(當然,在fin包之前發送出去的數據,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),但是,此時主動關閉方還可以接受數據。
第二次揮手:被動關閉方收到FIN包后,發送一個ACK給對方,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號)。
第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,我的數據也發送完了,不會再給你發數據了。
第四次揮手:主動關閉方收到FIN后,發送一個ACK給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。


TCP的四次揮手過程(簡言之):主動關閉方向被動關閉方發送不會再給你發數據了的信息;被動關閉方對收到的主動關閉方的報文段進行確認;被動關閉方向主動關閉方發送我也不會再給你發數據了的信息;主動關閉方再次對被動關閉方的確認進行確認。




(1)TCP的三次握手過程:主機A向B發送連接請求;主機B對收到的主機A的報文段進行確認;
主機A再次對主機B的確認進行確認。
(2)采用三次握手是為了防止失效的連接請求報文段突然又傳送到主機B,因而產生錯誤。
失效的連接請求報文段是指:主機A發出的連接請求沒有收到主機B的確認,
于是經過一段時間后,主機A又重新向主機B發送連接請求,且建立成功,順序完成數據傳輸。
考慮這樣一種特殊情況,主機A第一次發送的連接請求并沒有丟失,
而是因為網絡節點導致延遲達到主機B,主機B以為是主機A又發起的新連接,
于是主機B同意連接,并向主機A發回確認,但是此時主機A根本不會理會,
主機B就一直在等待主機A發送數據,導致主機B的資源浪費。


總結

以上是生活随笔為你收集整理的Python面试总结(四)ip正则与三次握手四次挥手的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。