Linux-TCP/UDP程序

程序設計

TCP
服務器端監聽0.0.0.0以獲取所有網卡(主機所有IP地址)收到的請求
在這裏插入圖片描述

netstat -aptn#查看主機端口

socket底層有緩衝區,就算程序阻塞也能暫存收到的數據
代替客戶端發起tcp連接
在這裏插入圖片描述
在這裏插入圖片描述
UDP
用sendto和recvfrom方法通信
因爲端口只能綁定一次,所以服務端需要bind,以防和本地客戶端衝突
查看運行的端口
在這裏插入圖片描述
UDP高級應用

  • UDP廣播數據包
    廣播只能在一個廣播域(局域網)中傳播,而不能跨網段傳播
    ARP協議,做MAC發現
    vlan,實現局域網邏輯隔離
  • 組播數據包
    能夠在組播組中進行傳播的,並且路由器可以進行組播數據轉發
    修改套接口選項,實現廣播
    如果沒有設置BLOADCASE選項的不遞送。
    如果bind端口不匹配不遞送該套接口
    如果綁定的不是INADDR_ANY話,那麼BIND的地址和目的地址匹配才能遞送:也就是說你必須BIND一個廣播地址或者綁定INADDR_ANY
    用ifconfig命令可以disable塊網卡的BROADCAST標誌,讓其不能接受以太網廣播。
    也可以使用ioctl的SIOCSIFFLAGS方法去掉一個接口的標誌IFF_BROADCAST,使之不能接受以太網廣播。
    在這裏插入圖片描述
    linux抓包工具
    如何識別廣播包
    MAC:FF:FF:FF:FF:FF:FF
    IP:10.0.0.0/8 —>10.255.255.255
    192.168.199.1---->192.168.199.255
    在這裏插入圖片描述
    組播
    IP層實現遠程通信,組播需要指定組的IP(也可以是域名),本機IP
    bind組播地址
    224.0.0.1—239.255.255.255
    組播IP和局域網IP差不多,可以複用,是虛擬形式上的IP
    將當前UDPsocket加入組在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章