[자바 프로그래밍] 소켓 및 네트워크

2024. 7. 30. 18:10·CNU SW 아카데미/5주차
목차
  1. # 소켓 타입

일반적으로 socket(소켓) 통신에서의 socket은 network상에서 사용되는 network socket을 말한다

  • Network를 통해 데이터를 주고 받기 위한 endpoint(엔드포인트)
    • 서비스별로 엔드포인트가 존재하고, 해당 서비스 통신을 위해서는 해당 엔드포인트에 연결
  • Internet Socket
    • Protocol(프로토콜), IP address(IP 주소), port number(포트)로 정의됨
      1. Protocol: 다른 시스템과 원활한 통신을 위한 통신 규약
      2. IP address: Internet Protcol 통신을 위한 고유 식별 번호
      3. Port number: 각 host별로 특정 서비스를 위해 지정되고, 네트워크 통신에서 특정 서비스 연결을 위해 사용되는 값으로 단일 host내에서 서로 다른 서비스간 공유할 수 없다.
  • 특정 port 번호를 같는 socket은 잘 알려진 서비스와 연관됨
    • 80: HTTP
    • 22: ssh
    • 443: HTTPS
  • 잘 알려진 서비스를 특정 port 번호외 다른 port 번호로 변경 가능
    • 특별한 목적으로 web service를 80이 아닌 8080으로 설정 가능

 

 

 

# 소켓 타입

Datagram Sockets

  • UDP(User Datagram Protocol)를 사용하는 무연결 socket
  • Datagram socket에서 보내거나 받은 packet은 개별적으로 주소가 지정되고 라우팅됨
  • Datagram socket에서는 순서와 신뢰성이 보장되지 않으므로 한 기계 또는 프로세스에서 다른 기계로 전송되는 여러 packet이 임의의 순서로 도착하거나 전혀 도착하지 않을 수 있음

 

Stream Sockets

  • Connection-oriented Sockets
    • TCP(Transmission Control Protocol)
    • SCTP(Stream Control Transmission Protocol)
    • DCCP(Datagram Congestion Control Protocol)
  • 오류 없는 데이터 전송, packet 순서, 흐름 제어 보장
  • 인터넷에서 일반적으로 TCP를 사용하여 구현
    • Application에서 TCP/IP 프로토콜을 사용하여 통신
  • 송신된 순서에 따라 중복되지 않게 데이터를 수신함으로 이에 따른 overhead 발생

 

 

Raw Sockets

  • 프로토콜별 전송 계층 형식 없이 IP packet을 직접 보내고 받을 수 있음
  • 전송 계층 프로토콜(예: TCP, UDP)에 상관없이 IP packet으로 주고 받음
  • Berkeley sockets을 기반으로 하는 API는 raw sockets을 지원하며, 윈도우 XP는 2001년 윈삭 인터페이스에 구현된 raw sockets 지원을 통해 출시되었으나, 3년 후 마이크로소프트는 보안상의 문제로 row sockets 지원을 제한
  • Nmap과 같은 보안 관련 응용 프로그램에서 사용
  • 일반적으로 네트워크 장비에서 사용할 수 있으며 IGMP와 OSPF와 같은 라우팅 프로토콜에 사용
  • ping 유틸리티에 의해 사용되는 인터넷 제어 메시지 프로토콜(ICMP)에도 사용

 

'CNU SW 아카데미 > 5주차' 카테고리의 다른 글

[자바 프로그래밍] 컴퓨터 네트워크와 HTTP  (0) 2024.07.31
[자바 프로그래밍] 네트워크  (0) 2024.07.29
  1. # 소켓 타입
'CNU SW 아카데미/5주차' 카테고리의 다른 글
  • [자바 프로그래밍] 컴퓨터 네트워크와 HTTP
  • [자바 프로그래밍] 네트워크
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6)
        • Front (1)
        • Back (4)
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[자바 프로그래밍] 소켓 및 네트워크

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.