• Socket 통신

    • 서로 떨어져있는 두 호스트를 연결해주는 도구로써 인터페이스의 역활을 함
    • 프로세스가 데이터를 받기위해선 소켓을 열어 데이터를 써보내거나 소켓으로부터 데이터를 읽어와야함. (이때 연결된 통로로 패킷을 교환한다)
    • 소켓은 IP, Port, Protocol 으로 정의된다.
      • Protocol : 어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약 및 약속
      • IP : 전 세계 컴퓨터에 부여된 고유의 식별 주소
        • IP(Internet Protocol)
      • Port : 네트워크상에서 통신하기 위해서 호스트 내부적으로 프로세스가 할당 받아야 하는 고유한 주소. (프로세스 식별용 이기에 같은호스트 내부에선 서로 다른 프로세스가 같은 값을 가질수 없음)
    • Server Socket : 클라이언트 소켓의 연결요청을 대기하고 요청이 오면 클라이언트 소켓을 생성하여 통신을 가능케 한다
    • Client Socket : 실제로 데이터 송수신이 일어나는곳
    • 특징
      • Server - Client 구조를 가지며 처음 데이터를 보내는쪽이 Client가 되고 받는쪽이 Server가 된다.
      • Socket은 송수신을 한뒤 연결이 끊어지는것이 아니라 연결이 유지되어 실시간으로 송수신 할수있다.
  • OSI7 요새는 TCP/IP4

    • OSI7 | TCP/IP

    • 응용, 표현, 세션(DHCP, FTP, DNS, HTTP, POP…) | 응용 계층

    • 전송(TCP, UDP) | 전송 계층

    • 네트워크 계층( IP Address Version 4 or 6) | 네트워크 계층

    • 데이터 링크 계층(MAC Address) | 네트워크 접근 계층

    • 물리 계층(Ethernet Cable, Wire…) | 네트워크 접근 계층

  • TCP와 UDP의 차이 :

    • 공통점은 포트 번호를 이용하여 주소를 지정, 데이터 오류 검사를 위한 체크포인트 존재
    • 차이점은
      • TCP : 연결형, 가상 회선, 전송 순서 보장, 수신여부 확인, 1:1 통신가능, 신뢰성 높음 대신 느림
      • UDP: 비연결형, 데이터그램 방식, 전송 순서 보장 안함, 수신여부 확인 안함, 1:N통신, 신뢰성 낮음 대신 빠름
  • Socket 종류

    • TCP(스트림)
      • 양방향으로 바이트 스트림(순서가 있는 데이터의 연속적인 흐름)을 전송, 연결지향성
      • 오류수정, 전송처리, 흐름제어 보장
      • 송신된 순서에 따라 중복되지 않게 데이터를 수신 -> 오버헤드가 발생
      • Overhead : 어떤 처리를 하기 위해 들어가는 간접적인 처리시간 - 메모리등을 말함
      • 소량의 데이터 보다 대량의 데이터 전송에 적합 Ex)파일 전송
      • 각자의 호스트가 독립된 회선을 이용하는 Full-Duplex(전이중) 보장
      • 중개 장치를 거치지않고 직접적으로 연결되는 Point To Point(점대점) 보장
      • 연결 과정시 3HandShake 연결 해제시 4HandShake과정을 거친다
        • 3-handshake C(Client) , S(Server) SYN(싱크로나이즈드 시퀀스 넘버) ACK(아놀리지드먼트 넘버)
          • C:연결 요청 > S:연결 확인 수신및 C포트오픈요청 송신 > C: 연결 확인 송신.
        • 4-handshake
          • C:종료 요청 > S:종료 요청 수신및 통신 종료 대기 > S: 종료 요청 송신 > C: 종료 요청 수신 S: 일정시간 대기
      • TCP 프로토콜엔 (전송제어, 순서제어, 전달보장) 등등의 기능이 있음.
    • UDP(데이터그램)
      • 전송을 우선시한 독립적인 통신 방법
      • 비연결형 소켓, 연결을 위한 논리적인 경로가 없기
      • 전송 데이터의 크기에 제한이 있음. (Over한 Packet들은 나누어져서 보내짐.)
      • 1 : 1로 연결되는 TCP와 달리 다 : 다 가능
      • 신뢰성보단 연속성이 중요한 통화, 메시지 등에 주로 사용됨
      • 데이터 전달 보장X, 순서 보장X, 대신 단순하고 빠르다 IP와 거의 같으며 Port, Checksum(중복검사) 정도 만 추가됨
      • HTTP3 는 UDP 기반으로 개발되고있음.