1. TCP란?TCP(Transmission Control Protocol)는 연결 지향적이고 신뢰성 있는 프로토콜이다. 특징: - 연결 지향성 : 데이터 전송 전 연결 설정 필요 - 신뢰성 : 데이터 손실, 중복, 순서 오류 방지 - 흐름 제어 : 수신자의 처리 속도에 맞춰 전송 속도 조절 - 혼잡 제어 : 네트워크 상황에 따라 전송 속도 조절 - 전이중 통신(Full-duplex) : 양방향 동시 통신 가능 1.1. 연결 지향 통신TCP의 연결 지향 통신은 신뢰성을 보장하기 위해 여러 방법으로 데이터를 체크한다. - 3-way handshake: 연결 설정 시 SYN, SYN-ACK, ACK 패킷 교환 - 데이터 전송: 세그먼트 단위로 데이터 전송, 각 세그먼트에 대해 ACK 응답 -..
1. 소켓 생성소켓을 생성할때는 socket() 함수를 사용한다.socket() 함수의 반환타입은 int이다.int socket(int af, int type, int protocol); - af : 주소 체계 (IPv4, IPv6) - type : 소켓 타입 (TCP, UDP) - protocol : 일반적으로 0 (자동 선택) ex)SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);if (sock == INVALID_SOCKET) { std::cout - SOCKET : typedef된 int타입 - INVALID_SOCKET : 0외의 다른 값을 에러로 define. -1로 적어도 상관없음 2. 서버 소켓 바인딩 (bind)서버 소켓은 bind..
1. 소켓이란네트워크 상의 두 프로그램 간 양방향 통신 링크의 한쪽 끝점을 나타낸다. 소켓을 사용하면 같은 기기 내의 프로세스 간 통신뿐만 아니라 네트워크로 연결된 다른 기기의 프로세스와도 통신할 수 있다. 특징: - IP 주소와 포트 번호의 조합으로 식별 - 양방향 통신을 지원 - 다양한 프로토콜(TCP, UDP 등) 사용 가능 2. 소켓 프로그래밍 API2.1. 주요 함수socket(): 새로운 소켓을 생성bind(): 소켓에 IP 주소와 포트 번호를 할당listen(): 서버 소켓이 클라이언트의 연결 요청을 받을 수 있도록 함accept(): 클라이언트의 연결 요청을 수락connect(): 클라이언트 소켓이 서버에 연결을 요청send(), recv(): 데이터를 송수신close(): 소켓을 ..
0. 개요네트워크 파트를 따로 빼려면 너무 양이 방대해져 간단하게 어떤 것들이 있는지만 적으려고 한다.해당 내용에 대한 지식이 부족하거나, 더 자세하게 알고싶다면 네트워크를 따로 공부하는 것을 추천한다. 1. 네트워크 모델 (OSI, TCP/IP)네트워크 통신을 이해하기 위해서는 먼저 네트워크 모델에 대한 이해가 필요하다. 가장 널리 알려진 두 가지 모델은 OSI 모델과 TCP/IP 모델이다. OSI 모델OSI(Open Systems Interconnection) 모델은 네트워크 통신을 7개의 계층으로 나눈다. 1) 물리 계층2) 데이터 링크 계층3) 네트워크 계층4) 전송 계층5) 세션 계층6) 표현 계층7) 응용 계층 TCP/IP 모델TCP/IP 모델은 OSI 모델을 4개의 계층으로 단순화한 것..
멀티스레딩 관련 내용은 제외하고 작성할 예정입니다. 모든 내용은 Windows 및 C++로 진행됩니다. 목차1. 네트워크 프로그래밍 기초 2. 소켓 프로그래밍 기초 3. 소켓 프로그래밍 4. TCP 소켓 프로그래밍 5. UDP 소켓 프로그래밍 6. 소켓 옵션 9. 논 블로킹 소켓 틀린 내용이나 부족한 내용이 있다면 댓글로 남겨주세요
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.