raw socket
TIL
500
White

huydx viết ngày 05/08/2016

Raw socket

Chắc hẳn nhiều bạn đã biết đến câu lệnh ping

➜  pinger git:(master) ✗ ping google.com
PING google.com (216.58.197.142): 56 data bytes
64 bytes from 216.58.197.142: icmp_seq=0 ttl=56 time=4.132 ms
Request timeout for icmp_seq 1
64 bytes from 216.58.197.142: icmp_seq=2 ttl=56 time=4.471 ms
64 bytes from 216.58.197.142: icmp_seq=3 ttl=56 time=10.888 ms
64 bytes from 216.58.197.142: icmp_seq=4 ttl=56 time=8.185 ms

ping command chạy trên một protocol gọi là ICMP (internet control message protocol). Protocol này base trên IP protocol, tuy nhiên lại khác so với 2 protocol cũng base trên IP phổ biến khác là TCP hay là UDP. Để viết chương trình gửi / nhận ICMP thì thông thường bạn có thể declare socket dưới dạng SOCK_RAW (SOCK_RAW nhằm ý nghĩa là: tôi không muốn sử dụng package trên tầng TCP/UDP mà muốn gửi/nhận packet trực tiếp thông qua IP protocol).

Có một điều khá khó chịu khi sử dụng SOCK_RAW là bạn phải chạy chương trình dưới quyền root.

huydx 04-08-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

huydx

115 bài viết.
858 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
135 8
Introduction (Link) là một cuộc thi ở Nhật, và cũng chỉ có riêng ở Nhật. Đây là một cuộc thi khá đặc trưng bởi sự thú vị của cách thi của nó, những...
huydx viết hơn 1 năm trước
135 8
White
109 14
Happy programmer là gì nhỉ, chắc ai đọc xong title của bài post này cũng không hiểu ý mình định nói đến là gì :D. Đầu tiên với cá nhân mình thì hap...
huydx viết gần 3 năm trước
109 14
White
86 10
(Ảnh) Mở đầu Chắc nhiều bạn đã nghe đến khái niệm oauth. Về cơ bản thì oauth là một phương thức chứng thực, mà nhờ đó một web service hay một ap...
huydx viết hơn 2 năm trước
86 10
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 7 tháng trước
1 1
White
8 0
Lấy fake path của file trong html input Ngữ cảnh: em cần làm một cái nút tải ảnh lên có preview. GIải pháp đầu: Dùng (Link) đọc file ảnh thành ba...
Hoàng Duy viết gần 2 năm trước
8 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
115 bài viết.
858 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!