-
Câu Hỏi
1868
-
Thành Viên
799
-
Wiki-Hỏi-Đáp.Org
Wiki Hỏi đáp trực tuyến là website chia sẻ kiến thức cộng đồng về tất cả lĩnh vực từ giáo dục, kinh tế, xã hội khoa học, đời sống, gia đình...
Liên hệ tại: Wikihoidap.org@gmail.com
Liên kết hữu ích bạn nên xem: Alo789
-
Theo dõi Wiki Hỏi đáp
-
Bản quyền tại DMCA
Socket là gì? Vai trò & Ý nghĩa của Socket trong lập trình Socket PHP
Khi bạn bắt đầu tìm hiểu về thế giới linux chắc chắn bạn sẽ thấy những điều khó khăn ngay lập tức. Một trong những khó khăn đó phải kể đến đầu tiên là về Socket. Nhắc đến thuật ngữ này có lẽ nhiều lập trình viên mới bước chân vào thế giới linux vẫn chưa thực hiểu rõ. Vậy Socket là gì? Có những nghĩa nào để hiểu cho socket. Vai trò của nó là gì?
Danh mục nội dung
Bài viết sau đây sẽ giúp bạn làm rõ những vấn đề xung quanh thuật ngữ Socket, Socket là gì? Vai trò của socket trong lập trình socket php cùng chúng tôi theo dõi nhé!
Socket là gì?
Socket là một phần quan trọng của hệ điều hành Unix và Windows. Chúng giúp các nhà phát triển phần mềm dễ dàng tạo các chương trình hỗ trợ mạng. Thay vì xây dựng các kết nối mạng từ đầu cho mỗi chương trình họ viết, các nhà phát triển chỉ có thể bao gồm các socket trong chương trình của họ. Các ổ cắm cho phép các chương trình sử dụng các lệnh tích hợp của hệ điều hành để xử lý các chức năng mạng. Vì chúng được sử dụng cho một số giao thức mạng khác nhau (ví dụ HTTP, FTP, telnet và e-mail), nhiều ổ cắm có thể được mở cùng một lúc.
Socket CPU?
Socket CPU là gì
Socket CPU là đế cắm của các CPU trên mainboard, tương thích với từng loại mainboard là các đế cắm khác nhau, từ đó sẽ phù hợp với các loại CPU khác nhau, bạn có thể tìm hiểu thêm về sự khác nhau giữa CPU Xeon và Core I7 trong bài CPU Xeon .
Socket có nhiệm vụ làm điểm tiếp xúc và cũng là giá đỡ CPU khi gắn vào Mainboard.
Sử dụng socket giảm thiểu được rất nhiều rủi ro trong việc làm vỡ hoặc cong các chân của CPU khi lắp đặt hoặc gỡ bỏ nó.
Những người sử dụng máy tính thường có 2 nhóm đối tượng:
Những người ít hoặc không có ý định nâng cấp CPU cho máy; và ngược lại là những người đam mê, có nhu càu nâng cấp chip xử lý để khám phá các công nghệ mới.
Với bạn rơi vào trường hợp thứ nhất, bạn không cần quá quan tâm tới yếu tố socket.
Với những người này thì ngay cả khi CPU được hàn thẳng vào bo mạch chủ cũng không có vấn đề gì.
Tuy nhiên, nếu bạn rơi vào trường hợp thứ 2, bạn cần chú ý tới socket của CPU, bởi nó là một trong những yếu tố chỉnh ảnh hưởng tới khả năng nâng cấp của bạn
Mỗi hãng sản xuất CPU như Intel, AMD dùng một loại socket khác nhau
Hiện nay, các chip Intel sử dụng các loại socket gồm LGA 2011, LGA 1155, LGA 1366, LGA 1356, LGA 1150 và socket mới nhất LGA 2011-3.
Trong các socket này, LGA1155 là socket sẽ có vòng đời thấp nhất và không lâu nữa sẽ bị ngừng phát triển để nhường đường cho LGA1150.
Theo lộ trình của Intel, LGA1150 và LGA2011 sẽ còn được phát triển trong ít nhất vài năm tới đây.
Còn về phía AMD, AM3+ chính là socket mà hãng dùng cho khá nhiều phân khúc chip, từ 2 nhân giá rẻ cho tới các mẫu 8 nhân, ngay cả các chip Piledriver đời mới của AMD cũng sử dụng socket này.
Trong khi đó, dòng socket FM của AMD lại không được như vậy, FM1 không hỗ trợ quá nhiều CPU, còn FM2 lại không hướng tới đối tượng người dùng có nhu cầu nâng cấp.
Hầu hết người dùng socket FM2 sẽ mua máy sử dụng một thời gian rồi mua máy mới.
Nếu có nhu cầu nâng cấp CPU về lâu dài, bạn nên chọn dùng các socket gồm LGA2011, và LGA1150 của Intel. Với AMD, bạn nên chọn AM3+.
Socket dành cho Desktop
Trong bảng dưới đây, chúng tôi sẽ liệt kê tất cả các kiểu socket và slot đã đựợc tạo bởi Intel và AMD từ CPU 486 và ví dụ về các CPU tương thích với chúng.
Socket |
Số lượng pin |
Ngày phát hành |
Tương thích |
Socket 0 |
168 |
1989 |
486 DX |
Socket 1 |
169 |
1989 |
486 DX, 486 DX2, 486 SX, 486 SX2 |
Socket 2 |
238 |
Không rõ |
486 DX, 486 DX2, 486 SX, 486 SX2, Pentium Overdrive Intel 80486 |
Socket 3 |
237 |
1993 |
486 DX, 486 DX2, 486 DX44, 86 SX, 486 SX2, Pentium Overdrive, 5x86 |
Socket 4 |
273 |
Tháng 3/1993 |
Pentium-60, Pentium-66 |
Socket 5 |
320 |
Tháng 3/1994 |
Từ Pentium-75 đến Pentium-120 AMD K5, Cyrix 6x86 IDT WinChip C6, IDT WinChip 2 |
Socket 6 |
235 |
Không rõ |
486 DX, 486 DX2, 486 DX4 486 SX, 486 SX2 Pentium Overdrive, 5x86 |
Socket 463 |
463 |
1994 |
Nx586 |
Socket 7 |
321 |
Tháng 6/1995 |
Pentium-75 đến Pentium-200Pentium MMXK5K66x866x86MXMII |
Socket Super 7 |
321 |
Tháng 5/1998 |
K6-2K6-III |
Slot 1(SC242) |
242 |
Tháng 5/1997 |
Pentium II, Pentium III (Cartridge) Celeron , SEPP (Cartridge) |
Socket 370 |
370 |
Tháng 8/1998 |
Celeron (Socket 370), Pentium III FC-PGACyrix IIIC3 |
Socket 462/A |
462 |
2000 |
AMD Athlon, AMD Athlon MP AMD Athlon XP, AMD Athlon XP-M, AMD Duron AMD Geode NX, AMD Mobile Athlon 4, AMD Mobile Duron AMD Sempron |
Socket 423(PGA423) |
423 |
Tháng 11/2000 |
Pentium 4 (Socket 423) |
Socket 463 |
463 |
1994 |
Nx586 |
Socket 478 (mPGA478B) |
478 |
Tháng 8/2001 |
Pentium 4 (Socket 478) Celeron (Socket 478) Celeron D (Socket 478) Pentium 4 Extreme Edition (Socket 478) |
LGA775(Socket T) |
775 |
Tháng 8/2004 |
Pentium 4 (LGA775), Pentium 4 Extreme Edition (LGA775), Pentium DPentium Extreme EditionCeleron D (LGA 775), Core 2 Duo, Core 2 QuadCore 2 ExtremePentium Dual Core, Pentium E6000 series |
LGA1155(Socket H2) |
1.155 |
Tháng 1/2011 |
Core i3 2000 series, Core i3 3000 series, Core i5 2000 series, Core i5 3000 series, Core i7 2000 series, Core i7 3000 series, Pentium G600 series Pentium G800 series Pentium G2000 series Celeron G400 series Celeron G500 series |
LGA1156(Socket H1) |
1.156 |
Tháng 9/2009 |
Core i3 500 series, Core i5 600 series, Core i5 700 series, Core i7 800 series, Pentium G6900 series, Celeron G1101 |
LGA1366(Socket B) |
1.366 |
Tháng 9/2009 |
Core i7 900 series, Celeron P1053 |
LGA2011(Socket R) |
2.011 |
Tháng 11/2011 |
Core i7 3800 series Core i7 3900 series |
Slot A |
242 |
Tháng 6/1999 |
Athlon (Cartridge) |
Socket 462(Socket A) |
453 |
Tháng 6/2000 |
Athlon (Socket 462) Athlon XPAthlon MPDuronSempron (Socket 462) |
Socket 754 |
754 |
Tháng 9/2003 |
Athlon 64 (Socket 754) Sempron (Socket 754) |
Socket 939 |
939 |
Tháng 6/2004 |
Athlon 64 (Socket 939) Athlon 64 FX (Socket 939) Athlon 64 X2 (Socket 939) Sempron (Socket 939) |
Socket 940 |
940 |
Tháng 9/2003 |
Athlon 64 FX (Socket 940) |
Socket AM2 |
940 |
Tháng 5/2006 |
Athlon 64 (Socket AM2) Athlon 64 FX-62 Athlon 64 X2 (Socket AM2) Sempron (Socket AM2) |
Socket AM2+ |
940 |
Tháng 11/2007 |
Athlon 64 (Socket AM2/AM2+) Athlon 64 FX-62 Athlon 64 X2 (Socket AM2/AM2+) PhenomSempron (Socket AM2) |
Socket AM3 |
941 |
Tháng 4/2010 |
Athlon II, Phenom II, Sempron (Socket AM3) |
Socket AM3+ |
942 |
Tháng 10/2011 |
Athlon II, Phenom II, Sempron (Socket AM3), FX |
Socket F |
1.207 |
Tháng 11/2006 |
Athlon 64 FX-70, Athlon FX-72, Athlon FX-74 |
Socket FM1 |
905 |
Tháng 7/2011 |
A4, A6, A8, E2 |
Socket FM2 |
904 |
2012 |
A4, A6, A8, A10, E2 |
LGA 1150/Socket H3 |
1.150 |
2013 |
Intel Haswel, Intel Broadwell, Intel Haswell Refresh |
Socket FM2+ |
906 |
2014 |
AMD Kaveri Processors, AMD Godavari Processors |
Socket AM1 |
721 |
2014 |
AMD Athlon, AMD Sempron, |
LGA 1151/Socket H4 |
1.151 |
2015 |
Intel Skylake, Intel Kaby Lake |
LGA 1151v2 |
1.151 |
|
Intel Coffee Lake |
Socket AM4 |
1.331 |
2017 |
AMD Ryzen 7, AMD Ryzen 5 AMD Ryzen 3 |
Socket TR4 |
4094 |
2017 |
AMD Ryzen Threadripper |
LGA 2066/Socket R4 |
2066 |
2017 |
Intel Skylake-X, intel Kaby Lake-X |
Ứng dụng lập trình Socket PHP
Socket PHP là gì?
Ứng dụng lập trình Socket PHP là một giao diện lập trình ứng dụng mạng, giúp các bạn lập trình kết nối các ứng dụng để truyền và nhận giữ liệu trong môi trường có kết nối internet bằng cách sử dụng phương thức TCPIP và UDP. Trong quá trình làm việc các bạn có thể chạy nhiều socket cùng một lúc nên công việc của bạn sẽ nhanh hơn, nâng cao hiệu suất làm việc.
Điều kiện quan trọng nếu muốn thực hiện được kết nối này là các bạn phải biết số hiệu cổng socket và IP của một trong hai ứng dụng. Bạn nên lưu ý rằng nếu kết nối hai ứng dụng của một hệ thống máy tính thì không được cùng một số hiệu cổng, nếu không hoạt động sẽ không được tiến hành.
Tới đây bạn đã hiểu về socket là gì chưa, để có thể hiểu rõ hơn về giao diện này thì chúng ta sẽ đi sâu tìm hiểu về đặc điểm của socket nhé.
Làm quen với lập trình socket php
Socket có hai phương thức hoạt động chủ yếu là TCP(Socket có hướng kết nối) và UDP(Socket không hướng kết nối).
Socket có hướng kết nối
Đặc điểm của phương thức này là việc truyền và nhận dữ liệu chỉ được thực hiện khi có kết nối thống nhất giữa hai hệ thống (có địa chỉ IP giữa hai ứng dụng). Ưu điểm của phương thức này là dữ liệu sẽ được truyền chính xác tới nơi được yêu cầu, đúng thời gian mà không xảy ra bất cứ sai sót gì.
Nếu sử dụng theo phương thức TCP thì các thông tin, yêu cầu chuyển đi phải được thực hiện theo các trình tự nhất định và cần có báo cáo xác nhận trả về. Để thực hiện giao thức này bạn có thể tiến hành theo mô hình client và server.
Cơ chế gọi hàm của Socket có hướng kết nối được thực hiện theo sơ đồ sau:
Socket không hướng kết nối
Bạn có thể hiểu phương thức này như sau: việc truyền và nhận dữ liệu giữa hai ứng dụng kết nối với nhau không cần có một địa chỉ IP nhất định. Các thông tin và yêu cầu mà các bạn truyền đi có thể thực hiện nhiều lần và những yêu cầu gửi đi bắt buộc phải có thông tin của người nhận. Nhược điểm của phương thức này là thông tin bạn gửi đi có thể không tới được nơi người nhận và trình tự các thông tin bạn gửi không được thống nhất. UDP không có cơ chế báo cáo xác nhận trả về hay kiểm tra lỗi của việc truyền tải trong trường hợp bạn không nhận được thông tin. Có thể thông tin bạn gửi sau lại nhận được trước và ngược lại thông tin trước lại nhận được sau, thậm chí là không nhận được. Do đó hệ thống thông tin của bạn không được thống nhất, liền mạch gây ra nhiều lỗi không đáng có. Nếu các bạn mới bắt đầu học lập trình php hay tự học php online thì các bạn nên chọn phương thức TCP để quá trình học của mình được thuận lợi nhất.
Mặc dù có nhược điểm lớn như vậy nhưng nó vẫn được nhiều người sử dụng vì không bị gò bó trong những cơ chế phức tạp nên tốc độ truyền tải dữ liệu nhanh. Nó thường được sử dụng trong hoạt động khi bạn cần truyền tải thông tin, dữ liệu có kích thước nhỏ, không yêu cầu đúng thời gian như chat, game, …