관리 메뉴

CASSIE'S BLOG

Networking Protocols 본문

PROGRAMMING/면접준비

Networking Protocols

ITSCASSIE1107 2023. 12. 8. 16:43
반응형


패킷

패킷은 네트워크를 통해 전송되는 데이터의 작은 조각입니다. 이러한 작은 조각들은 통신이 일어날 때 정보를 효과적으로 전달하고 관리하기 위해 사용됩니다. 각 패킷에는 몇 가지 중요한 정보가 포함되어 있습니다:

데이터 (Payload): 패킷은 주로 전송하려는 실제 데이터를 담고 있습니다. 이는 텍스트, 이미지, 음성 또는 기타 형태의 정보가 될 수 있습니다.
헤더 (Header): 패킷의 헤더에는 전송에 필요한 제어 정보가 포함됩니다. 헤더는 출발지와 목적지 주소, 에러 검출을 위한 체크섬, 특정 서비스 유형을 식별하는 프로토콜 번호 등의 정보를 포함합니다.
트레일러 (Trailer): 일부 프로토콜은 패킷의 끝에 추가 정보를 담은 트레일러를 사용합니다. 주로 에러 체크 및 수정을 위한 부가 정보가 담겨 있습니다.
패킷은 이러한 헤더와 트레일러의 조합으로 이루어져 있으며, 네트워크를 통해 전송되는 동안 여러 패킷들이 서로 다른 경로로 이동할 수 있습니다. 이렇게 작게 나누어진 패킷은 전체 데이터를 안정적이고 효율적으로 전송하고, 오류 발생 시에도 복구하기 용이하게 합니다.

TCP:

TCP (Transmission Control Protocol)는 신뢰성 있는 통신을 지원하는 네트워크 프로토콜로, 다음과 같은 특징들을 갖고 있습니다:

Connection-Oriented (연결 지향): TCP는 통신 시작 전에 먼저 연결을 설정하고, 통신이 끝나면 연결을 정리합니다. 이는 신뢰성 있는 통신을 가능케 하는 기반을 제공합니다.
신뢰성 (Reliability): TCP는 패킷 손실, 중복, 순서 변경 등의 문제에 대응하여 신뢰성 있는 데이터 전송을 보장합니다. 이를 위해 패킷 전송 후에 확인 응답을 기다리고, 필요에 따라 재전송을 수행합니다.
흐름 제어 (Flow Control): 수신측이 속도에 비해 더 많은 데이터를 처리할 수 없을 때 발생할 수 있는 문제를 방지하기 위해 흐름 제어를 수행합니다. 이는 수신 측이 처리 가능한 양의 데이터를 전송측에 알리고, 전송 속도를 조절함으로써 발생하는 혼잡을 방지합니다.
혼잡 제어 (Congestion Control): 네트워크 혼잡을 감지하고, 혼잡을 최소화하기 위해 전송 속도를 동적으로 조절합니다. 이로써 네트워크의 효율성을 높이고 공평하게 자원을 사용할 수 있습니다.
Ordered Delivery (순서화된 전송): TCP는 데이터를 전송한 순서대로 수신측에 전달합니다. 이는 상위 레이어에서 올바른 데이터 처리를 보장하는 데 도움이 됩니다.
Full-Duplex 통신: TCP는 동시에 양방향으로 데이터를 송수신할 수 있는 full-duplex 통신을 제공합니다.
TCP는 주로 웹 브라우징, 이메일, 파일 전송 등과 같은 응용 프로그램에서 신뢰성 있는 통신을 위해 사용됩니다.

SSH:

SSH (Secure Shell)는 원격 지점에서 안전하게 접속하고 통신하기 위한 프로토콜 및 해당 프로토콜을 구현한 프로그램입니다. 이는 주로 원격 서버나 네트워크 장치에 안전한 방식으로 접속하고 명령을 실행할 때 사용됩니다.


SSH의 주요 개념과 역할은 다음과 같습니다:

암호화 (Encryption): SSH는 통신 데이터를 암호화하여 보호합니다. 이는 민감한 정보가 인터넷을 통해 전송될 때 중간에서 가로채거나 엿보는 것을 방지하여 보안성을 강화합니다.

인증 (Authentication): SSH는 사용자를 안전하게 인증하기 위한 다양한 방법을 제공합니다. 가장 일반적인 방법은 비밀번호를 사용하는 것이지만, 공개키 기반의 인증 방식도 흔히 사용됩니다.

원격 접속 (Remote Access): SSH를 사용하면 원격 서버나 장치에 안전한 접속이 가능합니다. 이는 터미널을 통해 명령어를 실행하거나 파일을 전송하는 등 다양한 작업을 수행할 수 있습니다.

포트 포워딩 (Port Forwarding): SSH를 이용하면 로컬 머신과 원격 서버 간의 포트 포워딩을 설정하여 로컬 머신에서 원격 서버에 접속한 것처럼 사용할 수 있습니다.

SFTP (Secure File Transfer Protocol): SSH는 파일 전송을 위한 안전한 프로토콜인 SFTP를 지원합니다. 이를 사용하여 파일을 안전하게 원격 서버로 전송하거나 가져올 수 있습니다.

SSH는 주로 리눅스 및 유닉스 기반 시스템에서 사용되며, 원격 서버 관리, 파일 전송, 터널링 등 다양한 용도로 활용됩니다.

반응형

'PROGRAMMING > 면접준비' 카테고리의 다른 글

Array와 ArrayList의 차이  (0) 2023.12.09
미들웨어함수  (0) 2023.12.09
서버이중화 (High Availability)  (1) 2023.12.08
DNS 작동원리  (2) 2023.12.08
캐싱  (1) 2023.12.01