본문 바로가기

프로토콜27

728x90
반응형
[IT 용어] Telnet, 텔넷 정의 텔넷(Telnet)은 서버-클라이언트 구조의 응용 프로토콜 중 하나이다. 텔넷은 시스템을 원격 제어하기 위해 터미널을 제공하는 용도로 사용한다. 참고문서 "텔넷, telnet, telnet", 정보통신용어사전, 한국정보통신기술협회. @원문보기 "telnet", 윈도우 서버, 마이크로소프트, 2023년 10월 5일. @원문보기 "TELNET PROTOCOL SPECIFICATION", RFC854, IETF, 1983년 5월. @원문보기 "A User TELNET Description of an Initial Implementation", RFC206, IETF, 1971년 8월. @원문보기 "Telnet", 위키피디아, 2024년 3월 8일. @원문보기 2024. 4. 8.
[IT 용어] SSH(Secure SHell) 정의 SSH(Secure SHell)는 TCP 위에서 보안 통신을 하는 프로토콜 중 하나이다. SSH는 인증과 기밀성, 무결성, 압축, 다중화, 포트포워딩(터널링)을 제공한다. 참고문서 "시큐어 셸, Secure Shell, SSH", 정보통신용어사전, 한국정보통신기술협회(TTA). @원문보기 "SSH Secure Shell", 정보통신기술용어해설, 2022년 7월 20일. @원문보기 2023. 11. 7.
[RHEL] 방화벽 개방한 포트 규칙 삭제 명령어 RHEL(Red Hat Enterprise Linux)에서 방화벽을 개방한 포트 규칙을 삭제하는 명령어는 아래와 같다. 규칙 삭제 아래의 명령어를 입력하여 방화벽 규칙을 삭제한다. firewall-cmd --permanent --zone=public --remove-port={포트번호}/{프로토콜} 규칙 적용 아래의 명령어를 입력하여 변경한 방화벽 규칙을 적용한다. firewall-cmd --reload 참고문서 "5.6.6. Controlling Ports using CLI", 레드햇 고객 포털. @원문보기 "RHEL/CentOS 에서 방화벽(firewall) 설정하기", lesstif. @원문보기 2023. 7. 26.
[IT 용어] UDP(User Datagram Protocol) 정의 UDP(User Datagram Protocol)는 전송계층 프로토콜 중 하나이다. UDP에는 통신을 위한 연결 과정이 없고 전송 보장을 위한 기법이 최소화 되어 있다. 참고문서 "User Datagram Protocol", RFC 768, 1980년 8월 28일. @원문보기 "사용자 데이터그램 프로토콜, 使用者-, User Datagram Protocol, UDP", 정보통신용어사전, 한국정보통신기술협회(TTA). @원문보기 "UDP, User Datagram Protocol", 정보통신기술용어해설, 2020년 6월 23일. @원문보기 "What is the User Datagram Protocol (UDP/IP)?", 클라우드플레어. @원문보기 2023. 7. 13.
[IT 용어] MQTT(Message Queuing Telemetry Transport) 정의 MQTT(Message Queuing Telemetry Transport)는 메시징 프로토콜 중 하나이다. MQTT는 IoT(Internet of Things, 사물인터넷)와 같은 한정된 컴퓨팅 자원(적은 배터리, 좁은 대역폭 등)에서 구동하기 용이하도록 경량화된 것이 특징이며 퍼블리셔-서브스크라이버 모델을 적용했다. 참고문서 "엠큐티티, Message Queuing Telemetry Transport, MQTT", 정보통신용어사전, 한국정보통신기술협회(TTA). @원문보기 "MQTT Specifications", MQTT.org. @원문보기 "MQTT 소개", yundream, JOINC, 2016년 4월 11일. @원문보기 2023. 5. 17.
[IT 용어] QUIC(Quick UDP Internet Connection) 정의 QUIC(Quick UDP Internet Connection)은 UDP 기반의 전송계층 프로토콜이다. QUIC은 응용 계층 프로토콜인 HTTP/2가 TCP(Transmission Control Protocol)을 하부계층 프로토콜로 사용하면서 발생하는 한계점을 개선하기 위해 제안되었고 현재 HTTP/3의 하부 계층 프로토콜로 사용된다. 참고문서 "QUIC, a multiplexed transport over UDP", The Chromium Projects. @원문보기 "QUIC (quic)", QUIC working group, IETF Datatracker. @원문보기 "IETF QUIC Working Group", QUIC 워킹그룹 홈페이지. @원문보기 "Version-Independent .. 2023. 4. 17.
소켓 프로그래밍이란 무엇인가? 소켓 프로그래밍이란? 현재 컴퓨터 네트워크는 대부분 TCP/IP 기반이다. TCP/IP에서는 소켓이라는 네트워크 통신을 위한 규격이 있다. 이 소켓을 활용해서 통신하는 프로그램을 개발하는 것이 소켓 프로그래밍이다. 소켓 프로그래밍을 처음 접할 때는 언제인가? 전공자라면 소켓 프로그래밍을 컴퓨터 네트워크 과목을 수강할 때 간단하게 익혔을 것이며 하위 과목으로 소켓 프로그래밍이라는 프로그래밍 실습을 많이 하는 과목을 수강했을 수 있다. 전공자가 아니라도 실무하다보면 언젠가는 접하게 되어 있다. 소켓 프로그래밍을 활용하는 분야 실제 사용하는 프로그램을 보면 통신을 안 하는 프로그램을 찾기가 어렵다. 그만큼 프로그래밍에서 소켓 프로그래밍을 활용하는 것은 일반적이지만 실제로 소켓 프로그래밍을 하는 경우는 잘 없다.. 2023. 3. 29.
[IT 용어] ICN(Information Centric Networking, 정보 중심 네트워킹) 정의 ICN(Information Centric Networking, 정보 중심 네트워킹)은 호스트(Host) 식별자를 토대로 종단간(End-to-End) 통신을 수행하는 TCP/IP 같은 기존 네트워킹과 달리 정보 식별자를 토대로 정보를 제공 받는 것에 초점이 맞춰진 네트워킹이다. 현재 기준 차세대 컴퓨터 네트워크로 불린다. 유사 용어 CCN(Content Centric Networking, 콘텐츠 중심 네트워킹) NDN(Named Data Networking) 관련 대학 연구실 경북대학교 지능형 네트워크 연구실(교수 김동균) @Blog @Homepage 참고문서 "Information-Centric Networking (ICN) Research Challenges", RFC 7927, IETF. @원.. 2023. 1. 16.
[CentOS 7] IP 주소 확인하는 법 CentOS에서 IP 주소를 확인하는 방법은 여러가지가 있겠지만 본 글에서는 터미널에서 명령어로 IP 주소를 확인하는 법을 다룬다. 아래 처럼 명령어를 입력하면 가지고 있는 네트워크 인터페이스 목록과 해당 네트워크 인터페이스의 IP 주소 값 등을 확인할 수 있다. ip addr show 현재 네트워크 인터페이스는 "lo"와 "ens32"로 두 가지가 있는데 "lo"는 자기 자신을 호출 하기 위한 루프백 인터페이스이며 "127.0.0.1"로 설정되어 있다. "ens32"로 이름이 설정된 이더넷 네트워크 인터페이스는 "192.168.0.73"로 IP 주소가 설정되어 있는 것을 확인할 수 있다. 2021. 4. 6.
NS-3에 LoRaWAN 모듈을 설치하고 실행해보자 LoRaWAN은 LoRa Alliance에서 2015년에 1.0을 공개하여 현재까지 활발히 활용되고 있는 저전력 광역 통신망(Low-Power Wide-Area Network, LPWAN) 기술 중 하나이다 [1]. 최근에 나는 LoRaWAN 기반의 IoT(Internet of Things) 응용을 개발하기 전에 통신 실험을 할 필요가 있어서 이 모듈을 활용해서 실험에 활용하려고 한다. 이 NS-3 모듈은 이탈리아 파도바 대학교의 SIGNET 연구실의 학생 중 한 명이 석사학위 논문을 작성하기 위해 개발하였으며 현재는 Github에 공개되어 있다 [2]. 구동환경 CPU : i7-4790K 운영체제 : 우분투 18.04 x64(윈도우 10 x64 기반 VMWARE 가상환경) Github에 공개되어 있는 .. 2020. 11. 29.
NS-3를 우분투에 설치하고 실행하자 최근에 실험해보고자 하는 주제가 생겨서 하는 김에 신 버전 NS-3를 설치하다가 설치 방법을 정리하게 되었다. 네트워크 프로토콜 시뮬레이터로 강력한 툴인 NS-3는 우분투(Ubuntu)에서 설치 및 실행이 가능하다. 이번 설치에는 VMWARE로 가상머신을 하나 생성하여 우분투 18.04를 설치한 다음 거기에다가 신 버전 NS-3를 설치했다. 구동환경 CPU : i7-4790K 운영체제 : 우분투 18.04 x64(윈도우 10 x64 기반 VMWARE 가상환경) 의존성 패키지 설치 NS-3를 설치하기 전에 설치해야하는 것들이 있다. 다음 명령어를 터미널에 입력하여 설치한다. sudo apt install gcc sudo apt install g++ NS-3 다운로드 NS-3 공식 홈페이지(www.nsnam.. 2020. 11. 27.
NS-3.32 업데이트 정보 네트워크 시뮬레이터 NS-3의 3.32 버전이 출시되었습니다. Wi-Fi 관련 기능이 보충되었고 여러 혼잡 제어 기능과 각종 버그들이 수정되었습니다. 변화된 점 Wi-Fi 802.11ax가 6 GHz 대역을 지원합니다. Wi-Fi 모델에서 RIFS(Reduced Interframe Space) 기능이 삭제되었습니다. NS-3의 Emulation에 Netmap과 DPDK(Data Plane Development Kit) 기능이 추가되었습니다. TCP에서 동적 페이싱이 추가되었습니다. TcpLinuxReno 혼잡 제어가 추가되었습니다. RFC 8033에 있는 PIE queue disc model이 추가되었습니다. FqCoDel 및 CoDel queue disc에 L4S 모드가 추가되었습니다. STL Pair.. 2020. 11. 9.
RedBearLab CC3200의 개발환경 소개 본 글은 2016년 4월 14일 11시 38분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. RedBearLab CC3200의 개발환경은 크게 두 가지 분류가 있다. 하나는 Energia이고 다른 하나는 CCS(Code Composer Studio)이다. 이 두 개의 환경은 관련 개발의 지식과 숙련도, 개발특징 및 기간에 따라서 선택하는 것이 좋다. Energia는 Arduino와 비슷한 형태의 IDE로써 Arduino를 접해본 적이 있다면 어렵지 않게 금방 CC3200 개발이 가능하다. Energia의 라이브러리와 예제는 CCS보다 풍부한 편이고 쉽고 빠른 개발에 초점이 맞춰져 있어서 프로토타입이나 데모버전 개발에 쓰면 꽤나 괜찮다. 아무래도 Energia로 개발하는 것이 속도.. 2020. 10. 14.
MQTT로 개발하는 것이 무조건 좋은 것인가? 본 글은 2016년 3월 29일 17시 28분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 현재(2020년 10월 14일)의 MQTT시장과는 상황이 전혀 다릅니다. MQTT를 써야한다면 쓰면 됩니다. MQTT 프로토콜이 적합한 경우 환경과 시나리오, 준비된 기술에 따라서 적합한 프로토콜이 있다. MQTT의 경우 1999년 네트워크의 신뢰성이 낮고 연산과 처리속도, 메모리가 극히 제한적인 상황을 고려해서 설계가 되었기에 2016년 현재 이러한 특징을 살릴 수 있는 상황이 아니라면 MQTT가 큰 의미는 없을 수 있다. 예를 들어 사용할 수 있는 네트워크의 단위 시간당 처리량이 크고 패킷 이용로가 아주 저렴할 때 IoT 장비가 이 네트워크를 사용해서 한달동안 100MB의 패킷을 절약.. 2020. 10. 14.
NS-3 로그의 종류와 로그를 터미널에 출력하는 법 본 글은 2016년 10월 14일 12시 56분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. NS-3는 각종 정보를 저장하고 확인하기 위한 로그를 지원한다. 이런 로그 정보는 파일로 저장 될 수도 있고 터미널에서 실시간으로 확인할 수도 있다. 로그의 종류는 아래와 같다. 종류 의미 LOG_LEVEL_ERROR 오류가 발생 했음을 의미하는 로그 LOG_LEVEL_WARN 경고용 로그 LOG_LEVEL_DEBUG 디버깅용 로그 LOG_LEVEL_INFO 각종 정보를 알려주는 로그 LOG_LEVEL_FUNCTION 함수 추적(tracing)을 위한 로그. LOG_LEVEL_LOGIC 함수안에서 추적흐름제어(control flow tracing)을 위한 로그 LOG_LEVEL_ALL .. 2020. 10. 14.
[네트워크] OSI 7계층 - 물리 계층 소개 및 프로토콜 설명 본 글은 2016년 3월 14일 13시 5분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. OSI 7계층의 가장 하단에 있는 계층은 물리계층이다. 물리계층은 전송매체의 물리적 인터페이스에 관한 사양을 기술한다. 다시말해서 정보를 표현한 신호(Signal) 교환 문제를 다루는 계층이다. 물리계층의 프로토콜은 하드웨어적 명세와, 인코딩/디코딩, 시그널링, 토폴로지와 같은 물리적 네트워크 디자인을 고려하여 정의하며 대표적인 프로토콜로 RS-232, V.24가 있다. 물리 계층의 프로토콜에는 전송속도/신호의 레벨/인코딩/디코딩 등 전기적 신호 규격과 송수신 호스트 사이의 클럭 동기화 방법, 전송매체의 규격과 같은 내용이 담길 수 있다. 2020. 10. 14.
MQTT(Message Queuing Telemetry Transport, 엠큐티티) 개요 본 글은 2016년 3월 29일 11시 58분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. MQTT(Message Queuing Telemetry Transport, 엠큐티티)는 Publish–Subscribe 기반의 경량 메시징 프로토콜이다. 응용계층의 프로토콜로로써 1999년에 IBM과 Eurotech에 의해 제한된 리소스(적은 배터리)를 가진 가진 센서가 사용하는 목적으로 개발하였다. 2013년부터 OASIS(Advaning open standards for the information society)가 표준화를 진행 중이다. 발행-구독 모델을 기초로 제작된 프로토콜이다. 기본포트는 1883이며 SSL용으로 8883을 쓴다. 신뢰성 있는 메시지 전송을 위해 세 종류의 Qo.. 2020. 10. 13.
[네트워크] 크로스레이어 프로토콜(Cross Layer Protocol)이란? 본 글은 2016년 11월 1일 11시 13분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 크로스레이어 프로토콜(Cross Layer Protocol)이란 한 계층의 프로토콜의 상태나 동작이 다른 계층(Layer)에 속한 프로토콜의 동작에 영향을 주는 것을 말한다. 예를 들어서 데이터링크(Data Link)계층에 속해 있는 프로토콜이 수집한 이웃 노드의 연결 품질(Link Quality)정보가 네트워크계층에 속한 프로토콜의 경로결정(Routing)에 영향을 주는 경우와 물리계층에 속한 프로토콜의 전력제어(Power Control)에 영향을 주는 경우 등이 있다. 전력제어와 관련된 크로스레이어 프로토콜의 한 예시를 설명 하자면 네트워크에 노드 A와 B와 C가 있고 서로 통신하는 .. 2020. 10. 13.
[네트워크] 듀티 사이클(Duty Cycle) 소개 본 글은 2017년 12월 16일 15시 50분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 통신 및 네트워크에서 흔히 말하는 듀티사이클(Duty Cycle)이란 주기적으로 장치가 켜지고 꺼지는 것을 말한다. 이는 주로 전력을 절약하기 위해 사용되며 흔히 통신 인터페이스의 전원을 껐다가 켜는 동작을 수행한다. 켜져 있을 때는 깨어있다(Wake up)하고 꺼져 있을 때는 자고 있다(Sleep)라고 말하는 것이 일반적이다. 위의 그림처럼 듀티 사이클을 나타낼 수 있으며 해석하면 t1에서 t2 시간 사이에는 장치는 켜져 있고 t2에서 t3에는 장치가 꺼져 있는 것을 알 수 있다. 2020. 10. 13.
NS-3 UAN 모듈에 IPv6를 올리다가 생긴 PacketSocketHelper 중복 사용 문제 본 글은 2016년 12월 5일 20시 12분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. UAN(Underwater Acoustic Networks) 모듈에 IPv6를 올려서 예제를 만드는 도중에 발생한 오류이다. IPv6나 IPv4를 노드(Node)에 올리다가 생기는 문제는 주로 PacketSocketHelper의 중복 사용 문제이다. InternetStackHelper가 PacketSocketHelper를 이미 쓰고 있기 때문에 나타나는 현상이라서 소스를 잘 살펴서 PacketSocketHelper가 중복 사용되는 부분만 지워주면 된다. 에러 메시지는 다음과 같다. Object::AggregateObject(): Multiple aggregation of objects o.. 2020. 10. 13.