본문 바로가기

[내일배움캠프]스파르타코딩클럽 AI 웹개발/Today I Learned

[내일배움캠프 26일차 TIL] 프로토콜

 

 

 

오늘도 노션에 정리하고 옮기기

노션 링크는 여기!

 


프로토콜

  • 정의
  • 서로 다른 시스템에 존재하는 개체(Entity)간의 원활한 통신을 위한 소프트웨어적 하드웨어적 약속이나 규칙 및 규약
  • OSI 7계층
    • 목적
    • 이질적인 시스템(SW/HW) 간 상호 접속을 위한 개념을 규정하기 위해 설계되었다
    • 7계층
      • 7계층 : 응용 계층
        • 사용자가 OSI 환경에 접근할 수 있도록 함
        • 사용자와 네트워크 간의 응용 서비스를 연결
        • 사용자 데이터 생성
      • 6계층 : 표현 계층
        • 데이터 표현에 존재하는 차이점들을 극복하개 해 줌
        • 코드 문자 등을 번역하여 일관되게 전송하고 압축, 해제, 보안 기능도 담당
        • 정보 형식 지정, 암호화, 해독, 접속 설정 기능
      • 5계층 : 세션 계층
        • 응용 프로그램 간의 대화를 구성하고, 동기를 취하며 데이터 교환을 관리하기 위한 수단을 제공
        • 대화 관리, 전자 사서함, 데이터 교환을 관리
      • 4계층 : 전송 계층
        • 네트워크 종단(End Point) 시스템 간의 일관성 있고 투명한 데이터 전송이 제공 될 수 있도록 지원함
        • 두 종단(End-to-End)간에 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 수행
        • 일관성 있는 데이터 전송, 신뢰성 있는 데이터 전송
      • 3계층 : 네트워크 계층
        • 통신 시스템 간의 경로 선택 및 통신 트래픽의 흐름을 제어하는 기능
        • 패킷 정보 전송, 정보 교환 및 중계 기능, 경로 선택 기능
        • 트래픽 제어 기능, 네트워크 연결 관리, 체증 제어, 라우터
      • 2계층 : 데이터 링크 계층
        • 물리적 연결(데이터 링크) 간의 신뢰성 있는 정보 전송을 할 수 있는 기술과 관계됨
        • 오류의 흐름을 제거하여 신뢰성 있는 데이터를 전송
        • 한 노드로부터 다른 노드로 프레임을 전송하는 작업 수행
      • 1계층 : 물리 계층
        • 전송 매체와 전송 신호를 액세스하기 위한 기계적, 전기적, 기능적, 절차적 특성을 규정짓는 최하위 계층
        • 실제 장비들을 연결하기 위한 연결 장치
  • TCP/IP
    • 특징
      • TCP와 IP뿐만 아니라 UDP, ICMP, ARP, RARP등 관련된 모든 프로토콜을 통칭
      • 인터넷 연결을 위한 프로토콜
      • TCP계층, IP계층, 응용 계층으로 구분함
      • TCP는 데이터 전송 프로토콜로 연결형 프로토콜임
      • IP는 여러 개의 패킷 교환망들의 상호 연결을 위한 범용 비연결 프로토콜임
    • 전달 구조
      • Data 구조
      • TCP 헤더 : 송수신자의 포트번호, 순서 번호, 응답번호 등 전달되는 정보 파악
      • IP 헤더 : IP 버전, 송신측 IP, 수신측 IP, 프로토콜의 종류, 서비스 타입 등의 정보
      • MAC 주소 : 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자
      • 헤더
        • IP의 헤더
          • version
          • IHL(IP Header Length) : 헤더의 길이
          • TOS(Type Of Service) : 요구되는 서비스 품질 설정
          • Total Packet Length : IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 바이트 단위로 길이를 표시
          • Idntifier : 전송 데이터를 패킷으로 분할하고 조립할 때 사용(같은 종류의 패킷인지)
          • Flags : 패킷 분열의 특성을 나타내는 플래그
          • Fragment Offset : 패킷의 분할된 정보 기록
          • TTL(Time-to-Live) : IP 패킷의 수명 기간을 기록, 패킷이 소멸되기 전 데이터가 이동할 수 있는 딘계의 수를 나타냄
          • Protocol ID : 상위 계층 프로토콜의 정보 기록
          • Header Checksum : IP 헤더의 오류를 검사 , 속도가 떨어지는 요인이 됨
          • Source IP Address : 발신지 IP 주소 기록
          • Destination IP Address : 목적지 IP 주소 기록
          • Open and Padding : 제어, 디버깅이 가능하나 대부분 사용하지 않음
        • TCP의 헤더
          • Source Port Number : 발신지 포트 번호
          • Destination Port Number : 목적지 포트 번호
          • Sequence Number : 전송되는 데이터의 가상 회선을 통해 전송되는 데이터의 모든 바이트에는 고유한 일련번호 부여. 데이터의 일련넘버를 사용하여 데이터를 올바른 순서로 재배열
          • Acknowledgement Number: 다음 패킷을 수신할 준비가 되었다는 사실을 알림. 모든 데이터가 수신되었다는 것을 나타내는 묵시적인 확인 메세지
          • HLEN(Head LENgth) : 헤드의 길이를 32비트 단위로 나타냄
          • U(URG) : Urgent Pointer. 필드가 가리키는 패킷 번호까지 긴급 데이터를 포함하고 있다는 것을 뜻함
          • A(ACK) : 확인 응답 메세지
          • P(PSH) : 현재 패킷에 포함된 데이터를 상위 계층에 직시 전달하도록 지시할때 사용
          • R(RST) : 유효하지 않은 패킷에 대한 응답
          • S(SYN) : 가상회선 연결을 설정할 때 사용. 정확한 메세지를 송수신하기 위한 동기화를 할 때 사용
          • F(FIN) : 전송할 데이터가 없어 연결을 종료하고싶다는 의사 표시를 상대방에게 알림
          • Window Size : 수신측에서 수신할 수 있는 패킷 수 표시
          • Checksum : TCP 헤더와 TCP 데이터를 검사. 변형 오류 검출
          • Urgent Pointer : 긴급 데이터를 처리하기 위한 용도
        • UDP 헤더
          • Source Port Number : 발신지 포트 번호
          • Destination Port Number : 목적지 포트 번호
          • UDP Length : UDP 헤더와 UDP 데이터의 길이를 기록
          • UDP checksum : 헤더와 데이터를 검사, 변형 오류 검출
          • 헤더의 길이는 8바이트
    • 계층
      • 응용 계층
        • 전자우편
          • e-mail 개념
            • 편지를 주고받을 수 있는 서비스
            • 편지를 받을 때 POP 서버, 편지를 보낼 때 STMP 서버 이용
            • ‘사용자ID@호스트 주소’의 형식
            • 송신자와 수신자가 동시에 인터넷에 연결되어 있지 않아도 됨
          • STMP(Simple Mail Transfer Protocol)
            • 사용자가 컴퓨터에서 작성한 메일을 다른 사람의 계정이 있는 곳으로 전송해주는 역할을 하는 프로토콜
          • POP3 (Post Office Protocol 3)
            • E-메일 서버에 도착한 이메일을 사용자 컴퓨터로 가져올 수 있도록 메일 서버에서 제공하는 프로토콜
          • MIME(Multipurpose Internet mail Extension)
            • 텍스트, 이미지, 오디오, 비디오 등의 멀티미디어 전자우편을 주고받기 위한 인터넷 메일의 표준
          • IMAP(Internet Messaging Access Protocol)
            • 메일 서버에 직접 접속해 이메일을 관리하는 프로토콜
            • 양방향 통신 제공
            • 폴더를 이용하여 메일을 구분하고 관리
        • HTPP
          • 웹상에서 파일(텍스트, 그래픽 이미지, 사운드, 비디오 등)을 주고받는데 필요한 서비스
          • 웹 브라우저의 주요 서비스로 URL에서 http:// 로 사용
        • FTP
          • 인터넷에서 파일을 전송하기 위한 프로토콜
        • Telnet
          • 원격지에 있는 컴퓨터에 권한을 가진 사용자가 접속하여 프로그램을 실행하거나 시스템 관리 작업을 할 수 있는 인터넷 서비스
        • 유즈넷(UseNet) 서비스
          • 다수의 사용자가 각 분야별로 공지사항 및 최신 정보를 제공해주는 서비수
        • Gopher 서비스
          • 인터넷 문헌 자료 데이터베이스 서비스 프로토콜
        • Archie 서비스
          • FTP 지원 서비스로 HOST를 검색하는 서비스 프로토콜
          • 자신이 원하는 정보들이 인터넷상의 어느 디렉터리에 있는지를 알아볼 수 있는 서비스
        • WAIS 서비스
          • WAIS 클라이언트는 WAIS 서버를 검색하여 각종 DB의 색인을 통한 자료를 찾을 수 있게 하는 서비스
        • 핑거(Finger)
          • 특정 시스템을 사용하고 있는 사용자의 정보를 알아보기 위한 서비스
        • IRC(Internet RElay Chat)
          • 인터넷을 통해 채팅할 수 있도록 하는 서비스
      • 전송 계층
        • TCP(Transmission Control Protocol)
          • 기능
            • 두 종단 간 연결을 설정한 후 데이터를 패킷 단위로 교환
            • 전송 데이터의 흐름을 제어하고 데이터의 에러 유무 검사
            • 수신측에서 잘못 전송된 패킷에 대해 재전송 요구
            • 연결형 프로토콜
            • Flow Control 기능을 수행하여 단계별 데이터 전송 상황을 체크
            • 논리적인 가상 회선을 지원하여 해당 경로로만 데이터가 전달되도록 함
            • TCP를 이용한 대표 서비스는 FRP, Telenet, HTTP, SMTP, POP, IMAP 등
          • 링크 설정
            • 데이터 전송 시 상대방과 통신을 수립
            • TCP의 통신 수립을 3단계(3-Way) 핸드셰이킹이라고 함
            • 핸드셰이킹은 제어 비드 중 SYN, ACK 사용
            • 통신 수립 후에데이터를 전송하므로 신뢰성 있는 프로토콜임
            • 통신 수립 단계 때문에 지연이 생김
        • UDP(User Datagram Protocol)
          • 기능
            • 신뢰성을 보장하지 않는 비접속형 통신을 제공
            • 메세지가 분실되거나 송신된 순서와 다른 순서로 수신될 수 있음
            • 전송 속도가 빠르지만 신뢰성 있는 데이터 전송에는 부적합함
            • 하나의 송신 정보를 다수의 인원이 수신해야 하는 경우 적합
            • UDP를 이용하는 대표 서비스는 SNMP, DNS, TFTP, NFS, NetBIOS, 인터넷 게임, 방송, 증권 등
          • 링크 설정
            • 통신 수립 단계가 없는 프로토콜(보내면 끝)
            • 송신측은 전송된 데이터의 확인 응답(ACK)이 없음
            • 통신 수립 단계가 없어 신뢰성 부족
            • 통신 수립 단계가 없어 신속함
            • 저용량의 데이터를 신속하게 처리하는 서비스에 적합
        • SNMP(Simple Network Management Protocol)
          • 네트워크 장비를 관리 감시하기 위한 목적으로 UDP상에 정의된 응용 계층 표준 프로토콜
        • RTP(Real Time transport Protocol)
          • 실시간으로 음성이나 동영상을 송수신하기 위한 전송계층 통신 규약
      • 인터넷 계층
        • IP(Internet Protocol)
          • 패킷의 주소를 해석하고 경로를 결정하여 다음 호스트로 전송
          • 여러 개의 패킷 교환망들의 상호 연결을 위한 범용 비연결형 프로토콜
          • 각 패킷의 주소 부분을 처리하여 패킷이 목적지에 도달할 수 있도록 함
        • ARP(Address Resolution Protocol)
          • 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적인 주소로 번역해주는 프로토콜
        • RARP(Internet Control Message Protocol)
          • 호스트의 연결된 네트워크 접속 장치의 물리적인 주소를 호스트 IP주소로 번역해주는 프로토콜
        • ICMP(Internet Control Message Protocol)
          • IP의 상태 및 오류 정보를 공유하며 ping에 사용
          • IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜
          • 네트워크 컴퓨터상에서 돌아가는 운영체제에서 오류 메세지를 전송받는 데 주로 쓰이며 인터넷 프로토콜의 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행
        • DNS(Domain Name Server)
          • 도메인 네임은 문자로 구성되어있어 숫자로 구성된 IP주소보다 인터넷 주소를 이해하거나 기억하기 쉬움
          • 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 데이터베이스 시스템
          • 인터넷의 모든 도메인은 전 세계적으로 고유하게 존재
          • 왼쪽에서 오른쪽으로 갈 수록 상위 도메임
      • 링크 계층

프로토콜 한 가지만 정리했는데도 내용이 많다...

강의에서 다뤄준 프로토콜 외에도 정말 다양하게 있었다!

심지어 이메일도 프로토콜 중 하나였다는 것...!