TCP_IP 공부 (5)
2025-04-18 11:02:51

 UDP란?

UDP 소켓의 특성

  • User Datagram Protocol
  • IP를 기반으로 데이터를 전송한다.
  • 흐름제어를 하지 않기 때문에 데이터 전송을 보장 받지 못한다. (신뢰할 수 없는 데이터 전송*)
  • 프로토콜 자체가 간단하여 속도가 빠르다.

 

UDP의 내부 동작

  1. 기본 데이터 단위 : 데이터그램
  2. IP(L3 프로토콜)가 데이터를 라우팅을 통해 목적지 까지 전달
  3. UDP(L4 프로토콜)는 호스트내에서 port를 통해 최종 목적지 프로세스를 구별*

 

UDP의 효율적인 사용

  1. 압축 파일 : TCP가 유리,                       실시간 서비스 : UDP가 유리
  2. 데이터 양이 많은 경우 : TCP가 유리,  데이터 양이 적은 경우 : UDP가 유리

 

UDP 기반 서버/ 클라이언트 구현

UDP 서버는 클라이언트와 연결되어 있지 않다

  • 서버와 클라이언트 간에 연결 상태가 존재하지 않는다
  • TCP에서 필요하던 listen(), accpet(), connect() 함수가 불필요하다

UDP의 소켓은 오직 하나

  • 데이터를 주고 받기 위한 소켓은 하나만 생성된다
  • TCP에서는 서버에 연결된 클라이언트 수 만큼 소켓이 생성됨
  • 소켓 하나로 여러 개의 클라이언트와 송수신 가능

 

UDP 기반의 데이터 입출력 함수

 

 

UDP 기반의 데이터 입출력 함수

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'TCP_IP 공부' 카테고리의 다른 글

TCP_IP 6주차  (1) 2025.04.11
TCP_IP 4주차  (0) 2025.03.28
TCP_IP 2차시  (0) 2025.03.21
TCP_IP 1주차  (0) 2025.03.14
2025-04-11 12:06:11

TCP/IP 프로토콜 스택

 

  • Link 계층
    • 물리적인 영역을 담당
    • LAN의 MAC 프로토콜과 WAN의 L2 프로토콜 영역

 

  • IP 계층
    • 네트워크를 통한 데이터 전송을 담당한다
    • IP 주소를 사용, 경로를 선택해서 목적지로 라우팅함

 

  • TCP/IP 계층
    • TCP에서 IP를 사용하여 데이터 전송
    • IP는 오직 한 패킷의 전송에만 관심을 둠
    • TCP는 데이터의 수신을 확인하는 메커니즘을 사용

 

  • 응용 계층
    • 소켓을 이용한 프로그램의 구현을 의미한다

 

TCP 서버에서의 기본적인 함수 호출 순서

  • 연결 요청 대기 상태로의 진입
  1. listen 함수는 전달되는 인자의 소켓을 서버 소켓이 되세 한다
  2. listen 함수는 연결 요청 대기 큐를 생성한다.

sock : 연결 요청 대기상태에 두고자 하는 소켓의 파일 디스크립터, 디스크립터 소켓의 서버 소켓이 된다

backlog : 연결요청 대기 큐의 크기 정보

 

  • 연결요청 수락하기
  1. 연결요청 대기 큐에 존재하는 클라이언트의 연결 요청 수락

sock : 서버 소켓의 파일 디스크립터

addr : 연결 요청한 클라이언트의 주소 정보를 담을 변수의 주소 값 전달. 함수 호출이 완료되면 인자로 전달된 주소의 변수에는 클라이언트의 주소 정보가 채워짐

addrlen : addr에 전달된 주소의 변수 크기를 바이트 단위로 전달

 

Iterative 기반의 서버, 클라이언트의 구현

  1. Iterative 서버 : 반복해서 클라이언트의 요청을 처리한다

  1. 에코 서버/클라이언트의 기능 : 클라이언트가 전송해주는 데이터를 그대로 되돌려 전송해주는 기능의 서버

 

 

TCP 기반의 데이터 전송의 특징

  • 한번의 데이터 전송함수 호출이 늘 하나의 패킷을 형성하는 것은 아님
  • TCP는 연결지향 프로토콜로 전송되는 데이터의 경계가 없음
  • 한번에 write()를 사용하여 "ABCD" 문자를 전송할지라도, 그 데이터들이 하나의 패킷을 형성하여 전송되는것은 아님

 

 

'TCP_IP 공부' 카테고리의 다른 글

TCP/IP 7주차 (UDP)  (0) 2025.04.18
TCP_IP 4주차  (0) 2025.03.28
TCP_IP 2차시  (0) 2025.03.21
TCP_IP 1주차  (0) 2025.03.14
2025-03-28 11:32:23

LAN 에서 사용되는 일반적인 프로토콜

  • Ethernet
  • Tokken Ring
  • FDDI

 

ETERNET PROTOCOL 규격

10 base 5
Speed (M bpd) base = baseband
broad = broadband
세그먼트의 길이를 나타냄
5이면, 최대 길이 = 5 * 100 m

 

 

스타 토폴로지

  • 중앙 : 허브, 리피터 또는 콘센트레이터
  • Ethernet과 Tokken Ring에서 주로 사용
  • 5 ~ 100 대의 장비

 

 

 

 

 

 

 

링 토폴로지

  • 각 부분에 리피터
  • 단 방향 전송 링크
  • 폐쇠된 루프 구조
  • FDDI 네트워크에서 주로 사용됨

 

 

 

 

 

 

 

 

 

 

 

Tokken-Ring 및 FDDI

 

 


 

Ethernet

Ethernet Frame 구조

Ethernet Frame Format

Preable Frame
Delimiter
Destination
address
source
address
Type data FCS

IEEE 802.3 Frame Format

Praable Frame
Delimiter
Destination
address
source
address
Type data FCS

 

  • 프리앰블 : 비트 동기화에 사용된다 ( 7 바이트 )
  • 프레임 시작 : 프레임의 시작을 나타냄 ( 1 바이트)
  • 목적지 주소 : 수신측 주소를 나타냄 ( 6 바이트 )
  • 근원지 주소 : 송신측 주소를 나타냄 ( 6 바이트 )
  • 종류 필드 : 상위 계층의 네트워크 프로토콜을 식별함 ( 2 바이트 )
  • 데이터 : 실제 전송될 자료가 들어감 ( 46 ~ 1500 바이트 )
  • 프레임 체크 시퀀스 : 에러검사에 사용됨 ( 4 바이트 )

Ethernet의 통신 방식 : CSMA/CD

매체 Access 방식

 

 

전송방식 비교

 

 


 

네트워크 프로그래밍과 소켓

소켓 : PC (호스트) 간에 연결을 해주는 소프트웨어 적인 장치

 

네트워크 프로그래밍

  • 네트워크로 연결되어 있는 두 호스트 간의 데이터 송수신
  • 파일 입출력 과의 차이점은 데이터를 주고 받는 대상에 있다
  • 소켓 이라는 장치를 사용하여 프로그래밍 한다
  • 소켓 프로그래밍 == 네트워크 프로그래밍

Client/Server 모델

  • Server는 Client에 연결 요청을 기다린다
  • Client는 Server에 요청을 하고, 응답을 기다리는 호스트를 의미

Server의 종류

  • Iterative Server : 한 순간에 하나의 클라이언트에게 응답한다 (UTP)
  • Concurrent Server : 동시에 여러 클라이언트에게 응답한다

 

 

서버 소켓 구현

'TCP_IP 공부' 카테고리의 다른 글

TCP/IP 7주차 (UDP)  (0) 2025.04.18
TCP_IP 6주차  (1) 2025.04.11
TCP_IP 2차시  (0) 2025.03.21
TCP_IP 1주차  (0) 2025.03.14
2025-03-21 11:21:12

저번주 잠깐 복습

호스트

  • 최종 사용자의 응용 프로그램을 수행하는 주체

라우터

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

통신 프로토콜

  • 호스트와 라우터, 라우터와 라우터, 호스트와 호스트가 통신하기 위한 절차와 방법

 

TCP/IP

  • 인터넷의 핵심 프로토콜인 TCP와 IP를 비롯한 각종 프로토콜
  • 운영체제의 일부로 구현되며, 응용 프로그램은 운영체제가 제공하는 TCP/IP v프로토콜의 서비스를 사용해 통신

 

TCP/IP 프로토콜 구조

  • 계층적 구조
응용 계층 Telnet, FTP, HTTP, STMP, MIME, SNMP, ...
전송 계층 TCP, UDP
인터넷 계층 IP
너트워크 접근 계층 장치 드라이버, 네트워크 하드웨어

 


 

패킷

  • 각 프로토콜에서 정의한 제어 정보(IP 주소, 포트 번호, 오류 체크 코드 등) + 데이터
  • 제어 정보의 위치에 따라 앞쪽에 붙는 헤더와 뒤쪽에 붙는 트레일러로 구분

 

 

주소 (IP, MAC 주소)

IP 주소

  • 계층화된 주소
  • 인터넷에 있는 호스트와 라우터의 식별자
    • 폐쇠된 네트워크이거나 IP를 공유하는 경우가 아니면 전 세계적으로 값이 유일
  • IPv4는 32비트, IPv6는 128비트 사용
  • IPv4는 8비트 단위로 . 로 구분하여 10진수 4개로 표기
    • 147.46.114.70
  • IPv6는 16비트 단위로  : 으로 구분하여 16진수 8개로 표기
    • 2001:0230:abcd:ffab:eb00:ffff:1111

MAC 주소

  • 계층화되지 않은 주소
  • 48bits
  • 사람의 이름과 비슷
  • 실제로 네트워크 장비가 통신 시 사용하는 주소

포트 번호

  • 인터넷 통신의 종착점 (하나 혹은 여로 프로세스)을 나타내는 식별자
  • TCP와 UDP는 포트 번호로 부호 없는 16비트 정수를 사용하므로 0~65535 범위가 가능
  • 영역별 포트 번호
포트 번호 분류
0 ~ 1023 알려진 포트
1024 ~ 49151 등록된 포트
49152 ~ 65535 동적 / 사설 포트

도메인 이름

  • IP 주소에 대한 (기억하기 쉬운) 별명
  • 실제 통신할 떄는 IP 주소로 변환해야 함

 

클라이언트 - 서버 모델

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

서비스를 요청하는 쪽은 클라이언트, 클라이언트가 요청하는 서비스를 처리하는 쪽은 서버

'TCP_IP 공부' 카테고리의 다른 글

TCP/IP 7주차 (UDP)  (0) 2025.04.18
TCP_IP 6주차  (1) 2025.04.11
TCP_IP 4주차  (0) 2025.03.28
TCP_IP 1주차  (0) 2025.03.14
2025-03-14 11:23:37

통신 

지점에서 지점으로 전보를 보내는 것

 

데이터를 보내는 방법

  • 1 :  1 통신 => 1개의 지점에서 1개의 지점으로 정보를 보내는 방법
  • 1 : N 통신 => 1개의 지점에서 여러 장치로 데이터를 보내는 방법
    • 서버 : 데이터를 보내는 장치
    • 클라이언트 : 데이터를 수신하는 장비
    • 피어 투 피어 : 클라이언트와 서버 기능이 모두 가능한 네트워크 구조

 

네트워크를 구축하는 방법 

물리적 전송 선로를 이용하는 방법 => 1 : 1 통신

물리적 전송 선로 + 논리적 장치 구분에 의한 데이터 전송 방법 => 1:n 통신으로 1개의 물리적 전송 선로에 복수개의 통신 장치들이 연결되어 논리적 주소를 이용하여 데이터를 주고받는 방법

 

 

직렬 통신 - 시리얼 통신

데이터를 한 번에 1bit 씩 보내는 방식이다. 통로가 1개라서 비용이나, 자원이 크게 들지는 않는다. 또한 하나의 선만을 사용하기 때문에 하드웨어적으로 매우 간편해서 만들기가 쉽다. 하지만 데이터를 모으고 취합하는 과정을 구현해주어야 한다

 

병렬 통신

한번에 8 ~ 16bit에 해당하는 bit를 보내는 방식이다. 여러 개의 정보를 동사에 보내기 때문에 통로가 많아야 해 비용이나 자원이 크게 든다. 선이 많기 때문에 하드웨어적 구현 측면에서 시리얼보다 불편한다.

 

 

시리얼 통신의 방식

동기식 시리얼 통신

각각의 PC가 이러한 신호 주기로 보내겠다는 Clock을 정하고 데이터를 전송하는 방법이다. 그렇기 때문에 데이터를 보내는 데이터 선 말고도 클럭 주기를 맞추는 클럭선이 하나 더 필요하다. 미리 보내는 Clock을 맞추고 데이터를 주고받기 때문에 오류가 적고, 빠르게 데이터를 통신할 수 있다.(SPI 통신 방식) 

 

비동기식 시리얼 통신

비동기식 시리얼 통신을 따로 주기를 정하지 않고, 시작과 끝을 알려주고 전송하는 방법이다. 데이터 선만 있으면 되기 때문에 단순하고 빠르게 통신 회선을 구성할 수 있다. 하지만 동기 시리얼 통신에 비해 안정성이나 속도가 느리다.

 

통신 규격 : RS-22, RS-422, RS-485

'TCP_IP 공부' 카테고리의 다른 글

TCP/IP 7주차 (UDP)  (0) 2025.04.18
TCP_IP 6주차  (1) 2025.04.11
TCP_IP 4주차  (0) 2025.03.28
TCP_IP 2차시  (0) 2025.03.21