TCP/IP 윈도우 소켓 프로그래밍 1장 [네트워크와 소켓 프로그래밍]

김예은·2024년 11월 29일
0

1) TCP/ IP 프로토콜 개요

1. TCP/IP 프로토콜 구조

호스트 : 최종 사용자의 응용 프로그램을 수행하는 주체

라우터 : 호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송함으로써 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있도록 하는 장비

역할구성요소주소 지정 방식대표 프로토콜
네트워크 접근 계층물리적 네트워크를 통한 실제 데이터 송수신을 담당네트워크 하드웨어 + 장치 드라이버물리주소
인터넷 계층네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트까지 전달• IP 주소 + 라우팅(or 라우터)IP 주소
전송계층- 최종 통신 목적지(응용 프로그램)를 지정하고, 오류 없이 데이터를 전송포트 번호TCP, UDP
응용계층전송 계층을 기반으로 한 다수의 프로토콜과 이 프로토콜을 사용하는 응용 프로그램을 포괄Telnet, FTP, HTTP, SMTP
  • 라우팅 : 데이터를 목적지까지 전달하는 일련의 작업

2. 데이터 전송 원리

패킷이란 ?

각 프로토콜에서 정의한 제어정보 (IP주소, 포트번호, 오류체크 코드 등) + 데이터

헤더 + 트레일러

3. IP 주소, 포트번호

IP 주소 : 인터넷에 있는 호스트와 라우터의 식별자

포트번호 : 인터넷 통신의 종착점(하나 혹은 여러 프로세스)을 나타내는 식별자

포트번호분류
0~1023알려진 포트
1024~49151등록된 포트
49152~65535동적/ 사설 포트

4. 클라이언트-서버 모델

두 프로그램이 상호 작용하는 방식을 나타내는 용어

2) 소켓의 개념

소켓 : 버클리 유닉스에서 개발한 네트워크 프로그래밍 인터페이스

윈도우에서 사용할 수 있게 만든 것 : 윈도우 소켓 , (윈속)

데이터 타입

소켓 : 일단 만들고 나면 함수를 호출하여 손쉽게 네트워크 통신을 수행

통신 종단점

통신 종담점, 즉 통신의 출발점과 도착점

클라이언트 send(sock, .. ) → recv(sock, …) 서버

네트워크 프로그래밍 인터페이스

TCP/IP 프로토콜의 관점에서 네트워크 프로그래밍 인터페이스에 불과하다.

TCP/IP 프로토콜에서 응용계층과 전송계층 사이에 위치하는 것으로 간주

3) 소켓의 특징과 구조

1. 소켓 특징

윈도우 소켓 : 유닉스 소켓에 기반을 둔 네트워크 프로그래밍 인터페이스 → 소스코드 수준에서 호환성이 높음

윈도의 소켓과 리누스 소켓의 차이점

  • DLL 초기화와 종료 작업을 위한 윈도우 전용 함수가 필요
  • GUI 를 갖추고 메시지 구동 방식으로 동작하므로 이를 위한 확장함수가 존재
  • 멀티스레드를 지원

윈속(Windows Sockets)의 장단점

장점
1. 유닉스 소켓과의 호환성: 소스 코드 수준에서 호환성이 높아 기존 코드를 쉽게 이식 가능.
2. 범용성: 여러 운영체제에서 사용 가능한 네트워크 프로그래밍 인터페이스.
3. 프로토콜 지원: TCP/IP 외 다른 프로토콜도 지원, 코드 수정 최소화로 프로토콜 변경 가능.
4. 세부 제어 가능: 저수준 프로그래밍 인터페이스로 고성능 네트워크 프로그램 개발 가능.

단점
1. 응용 프로토콜 설계: 프로그래머가 직접 응용 프로그램 수준의 프로토콜 설계 필요.
2. 데이터 변환 처리: 서로 다른 바이트 정렬 방식이나 데이터 단위를 사용하는 호스트 간 통신 시, 데이터 변환을 응용 프로그램에서 처리해야 함.

4) 소켓 프로그램 맛보기

profile
소프트웨어공학 / 정보통신공학

0개의 댓글

관련 채용 정보