통신 프로토콜의 개념
- 프로토콜 (Protocol): 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계
- 통신 규약 및 약속
프로토콜의 기본 요소
- 구문 (Syntax): 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
- 의미 (Semantics): 두 기기 간 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 시간 (Timing): 두 기기 간 통신 속도, 메시지 순서 제어 등을 규정
프로토콜의 구성
- 물리적 측면: 자료 전송에 쓰이는 전송매체, 접속용 단자 및 전송 신호, 회선 규격 등
- 물리 계층, 데이터링크 계층, 네트워크 계층
- 논리적 측면: 프레임(Frame) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송 절차 등
- 전송 계층, 세션 계층, 표현 계층, 응용 계층
- 폐쇄적인 프로토콜: 자사 장치들끼리 통신하기 위한 독자적인 통신 규약, 자세한 규격이 공개되어 있지 않아 크래킹 위협에 상대적으로 안전 (e.g. IBM의 SNA, SDLC)
- 공개된 범용 프로토콜: 여러 장치들에 쓰이는 널리 알려진 규격, 규격이 공개되어 있어 크래킹에 취약한 편 (e.g. 인터넷의 TCP/IP)
프로토콜 종류
계층 (Layer) | 프로토콜 |
응용(Application) | HTTP, SMTP, FTP, Telnet |
표현(Presentation) | ASCII, MPEG, JPEG, MIDI |
세션(Session) | NetBIOS, SAP, SDP, NWLink |
전송(Transport) | TCP, UDP, SPX |
네트워크(Network) | IP, IPX |
데이터 링크(Data Link) | Ethernet, Token Ring, FDDI, Apple Talk |
물리(Physical) | 없음 |
- FTP (File Transfer Protocol): 파일 전송 프로토콜 (port 20: 데이터 전송용 / port 21: 제어용)
- 보안 문제로 FTPS(TLS 결합), SFTP(SSH 결합)가 있음
- TFTP (Trivial File Transfer Protocol): 간단한 파일 전송 프로토콜 (port 69)
- 데이터 전송 과정에서 데이터가 손실 될 수 있는 등 불안정
- FTP처럼 복잡한 프로토콜을 사용하지 않기에 구현이 간단
- 임베디드 시스템에서 운영 체제 업로드로 주로 사용
- Telnet: 원격지 컴퓨터 시스템 로그인 지원 (port 23)
- HTTP (Hyper Text Transfer Protocol): 인터넷에서 하이퍼 텍스트 문서 교환 (port 80)
- SNMP (Simple Network Management Protocol): 네트워크 관리 및 감시 (port 161)
- SMTP (Simple Mail Transfer Protocol): 전자 우편 송신 프로토콜 (port 25)
- POP3 (Post Office Protocol): 전자 우편 수신 프로토콜 (port 110)
- DHCP (Dynamic Host Configuration Protocol): 동적 IP 주소 할당 (port 67 서버 / port 68 클라이언트)
- 고유한 IP 주소를 가져야 다른 네트워크나 인터넷에 접속할 수 있는데, DHCP는 고유한 IP 주소 없이 접속할 때 자동으로 새로운 IP 주소 할당
- port 67: BOOTP 서버
- port 68: BOOTP 클라이언트
- ICMP: 운영체제 오류 메시지 전송 (port 1)
- NETBIOS: 근거리 통신망 어플리케이션 간 통신 지원 (port 139)
프로토콜(Protocol)의 기능
- 단편화(Fragmentation)와 재합성(Assembly): 긴 데이터를 작은 블록으로 나누어 전송하고 수신 측에서 재합성
- 캡슐화(Encapsulation): 데이터에 플래그, 주소 등 정보를 추가하여 데이터 블록 생성
- 연결 제어(Connection Control): 데이터그램 방식 및 가상회선 방식의 연결 개설·유지·종결
- 흐름 제어(Flow Control): 수신 측 처리 능력을 초과하지 않도록 조정
- 오류 제어(Error Control): 오류 검출 및 정정
- 순서 결정(Sequencing): 데이터를 순서대로 전달
- 주소 설정(Addressing): 발생지와 목적지 주소 명기
- 동기화(Synchronization): 두 객체 상태 일치
- 다중화(Multiplexing): 하나의 통신로를 여러 개로 나누거나 여러 회선을 하나로 변환
- 전송 서비스(Transmission Service): 추가 서비스 제공
데이터 전송 규칙
- 컴퓨터가 두 대 이상 연결되어 있으면 컴퓨터 네트워크가 되고, 컴퓨터 간에 데이터를 주고받을 수 있음
- 웹 사이트에 접속하는 것은 물론이고 네트워크나 인터넷에서 데이터를 주고 받는 데에는 규칙이 필요
패킷 (Packet)
- 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터 전송단위 (작은 조각)
- 용량이 큰 데이터를 전송할 때는 작게 나누어서 보내는 것이 규칙
- 분할된 패킷을 수신지로 전송할 때 네트워크 상황에 따라 전송한 순서대로 도착하지 않을 수도 있기 때문에 수신지에서는 분할된 패킷을 원래대로 재결합하는 작업을 수행
- 패킷이 전송될 때 네트워크가 지연되면 패킷이 늦게 도착하거나 손실될 수도 있음
패킷 재조립 예시
- 패킷은 순서 없이 랜덤으로 수신지에 도착
- 그러나 송신 측에서 각 패킷에 순서대로 번호를 붙여서 전송하고 수신 측에서는 번호에 맞춰 재조립 수행함으로써 각 패킷이 원래 위치에 자리 잡을 수 있음
- 마지막 패킷이 도착한 후 전체의 패킷을 번호 순서로 정렬하면 송신 측에서 보낸 원래의 데이터가 됨
패킷 전송 과정
- 패킷: 헤더, 페이로드 payload, 제어 요소 등을 포함하는 데이터 세그먼트
- 헤더: 데이터의 형태와 데이터의 송수신지, 일련번호 등으로 구성
- 페이로드: 실제 전송 데이터를 포함하는 부분
유무선 네트워크 설정
- 유선 네트워크 설정 (이더넷)
- Windows 설정 → 네트워크 및 인터넷에서 확인 가능
- 네트워크 프로필 변경 가능(공용/개인)
- 무선 네트워크 설정
- 무선 LAN 카드 설치 후 라우터 연결된 컴퓨터에서 설정 확인. 사용 가능한 네트워크 표시 클릭 후 연결
네트워크 명령어
- hostname: 컴퓨터 이름 확인
- net user: 컴퓨터 사용 계정 확인
- ping: 네트워크 호스트 상태 점검 (ping IP주소, ping IP주소 -t)
- ipconfig: 로컬 컴퓨터 네트워크 정보 확인 (ipconfig, ipconfig /all)
- tracert: 호스트까지 경로 추적 (tracert IP주소, tracert 사이트주소)