오늘도 노션에 정리하고 옮기기
프로토콜
- 정의
- 서로 다른 시스템에 존재하는 개체(Entity)간의 원활한 통신을 위한 소프트웨어적 하드웨어적 약속이나 규칙 및 규약
- OSI 7계층
- 목적
- 이질적인 시스템(SW/HW) 간 상호 접속을 위한 개념을 규정하기 위해 설계되었다
- 7계층
- 7계층 : 응용 계층
- 사용자가 OSI 환경에 접근할 수 있도록 함
- 사용자와 네트워크 간의 응용 서비스를 연결
- 사용자 데이터 생성
- 6계층 : 표현 계층
- 데이터 표현에 존재하는 차이점들을 극복하개 해 줌
- 코드 문자 등을 번역하여 일관되게 전송하고 압축, 해제, 보안 기능도 담당
- 정보 형식 지정, 암호화, 해독, 접속 설정 기능
- 5계층 : 세션 계층
- 응용 프로그램 간의 대화를 구성하고, 동기를 취하며 데이터 교환을 관리하기 위한 수단을 제공
- 대화 관리, 전자 사서함, 데이터 교환을 관리
- 4계층 : 전송 계층
- 네트워크 종단(End Point) 시스템 간의 일관성 있고 투명한 데이터 전송이 제공 될 수 있도록 지원함
- 두 종단(End-to-End)간에 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 수행
- 일관성 있는 데이터 전송, 신뢰성 있는 데이터 전송
- 3계층 : 네트워크 계층
- 통신 시스템 간의 경로 선택 및 통신 트래픽의 흐름을 제어하는 기능
- 패킷 정보 전송, 정보 교환 및 중계 기능, 경로 선택 기능
- 트래픽 제어 기능, 네트워크 연결 관리, 체증 제어, 라우터
- 2계층 : 데이터 링크 계층
- 물리적 연결(데이터 링크) 간의 신뢰성 있는 정보 전송을 할 수 있는 기술과 관계됨
- 오류의 흐름을 제거하여 신뢰성 있는 데이터를 전송
- 한 노드로부터 다른 노드로 프레임을 전송하는 작업 수행
- 1계층 : 물리 계층
- 전송 매체와 전송 신호를 액세스하기 위한 기계적, 전기적, 기능적, 절차적 특성을 규정짓는 최하위 계층
- 실제 장비들을 연결하기 위한 연결 장치
- 7계층 : 응용 계층
- 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바이트
- IP의 헤더
- 계층
- 응용 계층
- 전자우편
- 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)
- 메일 서버에 직접 접속해 이메일을 관리하는 프로토콜
- 양방향 통신 제공
- 폴더를 이용하여 메일을 구분하고 관리
- e-mail 개념
- 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)
- 실시간으로 음성이나 동영상을 송수신하기 위한 전송계층 통신 규약
- TCP(Transmission Control 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 주소로 변환해주는 데이터베이스 시스템
- 인터넷의 모든 도메인은 전 세계적으로 고유하게 존재
- 왼쪽에서 오른쪽으로 갈 수록 상위 도메임
- IP(Internet Protocol)
- 링크 계층
- 응용 계층
- 특징
프로토콜 한 가지만 정리했는데도 내용이 많다...
강의에서 다뤄준 프로토콜 외에도 정말 다양하게 있었다!
심지어 이메일도 프로토콜 중 하나였다는 것...!
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[내일배움캠프 28일차 TIL] 소프트웨어 문서 (0) | 2024.07.31 |
---|---|
[내일배움캠프 27일차 TIL] 빅데이터 및 인공지능 (1) | 2024.07.30 |
[내일배움캠프 25일차 TIL] 소프트웨어 설계 (0) | 2024.07.26 |
[내일배움캠프 24일차 TIL] 컴퓨터 구조와 운영체제 (0) | 2024.07.25 |
[내일배움캠프 23일차 TIL] 백준 10989번 수 정렬하기 3, 16951번 미로 탐색 with python (0) | 2024.07.24 |