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ì? 

Socket là gì?

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 là gì?

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ó.

Socket CPU là gì

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 dành cho Desktop

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

Ứ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, …