네트워크 프로 그래 밍 에 필요 한 기초 지식 을 점검 하 다.

자바 프로 그래 밍 개발 에서 네트워크 통신 의 개발 은 매우 중요 한 부분 입 니 다.이것 은 두 대 또는 여러 대의 컴퓨터 가 네트워크 를 진행 하 는 기초 입 니 다.네트워크 프로그램 이 작성 한 목적 은 바로 다른 컴퓨터 와 네트워크 통신 을 하기 위해 서 입 니 다.그래서 오늘 회색 늑대 는 자바 네트워크 통신 에서 알 아야 할 지식 을 나 누 어 보 겠 습 니 다.
사실은 자바 의 발전 과정 에서 네트워크 통신 을 더욱 편리 하 게 하기 위해 개발 자 는 네트워크 프로 그래 밍 에 필요 한 일부 내용 을 서로 다른 유형 으로 포장 했다.사용 자 는 네트워크 프로 그래 밍 을 할 때 해당 유형의 대상 을 만 들 고 해당 하 는 방법 을 호출 하면 된다.
우선 네트워크 의 통신 구 조 를 알 아 보 자.
랜 과 인터넷
네트워크 통신 에서 두 컴퓨터 의 정보 전송 은 다음 과 같은 네트워크 라인 을 사용 하여 표시 할 수 있다.
  • 그 중에서 서버 는 정 보 를 제공 하 는 컴퓨터 나 프로그램 을 말한다
  • 클 라 이언 트 는 정 보 를 요청 하 는 컴퓨터 나 프로그램 을 말한다4.567917.이들 은 인터넷 을 통 해 연결 하고 상호 통신 을 실현 한다.4.567918.
    그렇다면 우리 가 아 는 랜 과 인터넷 은 어떤 차이 가 있 을 까?
    랜(LAN)은 이름 으로 대충 알 수 있 습 니 다.일정한 지역 에서 일정한 수량의 컴퓨터 가 서로 연결 되 어 있 는 네트워크 입 니 다.두 대 일 수도 있 고 같은 지역 의 수천 대의 컴퓨터 로 구성 할 수도 있 습 니 다.한 랜 의 범위 가 계속 확대 되면 광 역 망(WAN)이 형성 되 었 습 니 다.
    우리 가 잘 아 는 인터넷(Internet)은 수많은 랜 과 광 역 망 으로 연 결 된 것 으로 네트워크 와 네트워크 사이 에 연 결 된 거대 한 네트워크 이다.이런 네트워크 는 통용 되 는 협정 으로 연결 되 어 논리 적 으로 단일 하고 거대 한 국제 네트워크 를 형성한다.컴퓨터 네트워크 를 서로 연결 하 는 이런 방법 을'네트워크 연결'이 라 고 할 수 있다.이 를 바탕 으로 전 세 계 를 덮 는 글로벌 인터넷 을'인터넷',즉'서로 연 결 된 네트워크'로 발전 시 켰 다.
    그렇다면 이 인터넷 들 사이 에 어떤 합의 가 있 는 지 이 야 기 를 나 눠 볼 까요?
    네트워크 프로 토 콜
    네트워크 프로 토 콜 은 컴퓨터 간 에 연 결 된 물리,기계,전기 등 특징,컴퓨터 간 의 상호 주소 지정 규칙,데이터 전송 충돌 의 해결 방식,긴 데 이 터 는 어떻게 세그먼트 전송 과 수신 등 내용 을 규정 한다.이 는 세계 각국 간 에 서로 다른 법률 이 있 는 것 처럼 현재 인터넷 에서 의 네트워크 프로 토 콜 도 여러 가지 가 있 는데 그 중에서 가장 흔히 볼 수 있 는 것 은 IP 프로 토 콜 과 TCP,UDP 프로 토 콜 이다.
    회색 늑대 가 간단하게 이 세 가지 협의의 기본 내용 을 소개 해 드 리 겠 습 니 다.
    IP 프로 토 콜
    IP 는 인터넷 입 니 다. protocol 의 약칭 은 네트워크 프로 토 콜 중의 하나 이다.인터넷 네트워크 가 사용 하 는 프로 토 콜 은 TCP/IP 프로 토 콜 이지 만 이 프로 토 콜 은 무시 할 수 없다.인터넷 은 TCP/IP 프로 토 콜 에 의 해 전 세계 에서 서로 다른 하드웨어 구조,서로 다른 운영 체제,서로 다른 네트워크 시스템 간 의 상호 연결 을 실현 했다.intertet 네트워크 에 수 억 개의 호스트 가 존재 합 니 다.모든 호스트 는 네트워크 로 분 배 된 intertete 주소 로 자신의 호스트 자 체 를 대표 합 니 다.이 주 소 는 IP 주소 이기 때문에 IP 주 소 는 특정한 컴퓨터 의 신분증 번호 라 고 할 수 있 습 니 다.
    지금까지 IP 주 소 는 네 개의 바이트 로 표시 되 었 습 니 다.즉,32 비트 의 바 이 너 리 로 표시 되 었 습 니 다.이것 은 우리 가 흔히 볼 수 있 는 IPV 4 주소 이기 도 합 니 다.편리 하 게 사용 하기 위해 서 우 리 는 각 바이트 의 10 진수 를 취하 고 각 바이트 사이 에 원점 으로 구분 하여 IP 주 소 를 표시 합 니 다.예 를 들 어 가장 흔히 볼 수 있 는 192.168.1.1.물론 파트너 도 컴퓨터 에서 16 개의 바이트 로 표시 되 는 IP 주 소 를 발 견 했 을 것 이다.이런 IP 주 소 는 IPV 6 주소 에 속한다.
    또한 TCP/IP 모델 은 하나의 차원 구조 로 모두 4 층 으로 응용 층,전송 층 인터넷 층 과 네트워크 층 이다.그들 은 각 층 마다 자신 만 의 특정한 기능 을 가지 고 특정한 서비스 와 대응 하 는 방문 인 터 페 이 스 를 제공 하 며 일정한 독립 성 을 거부한다.이 4 층 의 관 계 는 다음 그림 과 같다.

    TCP 와 UDP 프로 토 콜
    TCP/UDP 프로 토 콜 스 택 에 두 개의 고급 프로 토 콜 이 있 습 니 다.즉,전송 제어 프로 토 콜 TCP 와 사용자 데이터 보고 프로 토 콜 UDP 입 니 다.
    TCP 프로 토 콜 은 고정 연결선 을 바탕 으로 하 는 프로 토 콜 로 두 대의 컴퓨터 간 신뢰 할 수 있 는 데이터 전송 을 제공 합 니 다.TCP 는 한 쪽 데이터 에서 연 결 된 다른 한 쪽 으로 전송 할 때 데 이 터 를 정확하게 전송 할 수 있 고 도착 한 데이터 의 배열 순서 와 전송 시의 순서 가 같 습 니 다.
    따라서 TCP 협 의 는 신뢰성 요구 가 매우 높 은 장소 에 적합 하 다.예 를 들 어 이것 은 우리 쌍방 이 전 화 를 하 는 것 과 같다.나 는 먼저 상대방 에 게 전 화 를 걸 어야 한다.양 끝 이 연결 을 확정 한 후에 야 쌍방 이 서로 상대방 의 이 야 기 를 들 을 수 있 고 상대방 이 어떤 내용 을 사용 하 는 지 알 수 있다.
    한편,UDP 프로 토 콜 은 연결 되 지 않 은 통신 프로 토 콜 로 데이터 의 신뢰성 있 는 전송 을 보장 하지 않 지만 여러 개의 목표 에 데 이 터 를 보 내 거나 여러 개의 원 에서 온 데 이 터 를 받 을 수 있 습 니 다.UDP 는 독립 적 으로 패 킷 을 보 내 는 방식 으로 진행 되 는데 이런 방식 은 택배 기사 가 고객 에 게 택 배 를 보 내 는 것 처럼 여러 개의 소 포 를 같은 사람 에 게 보 낼 수 있 고 모든 소 포 는 서로 독립 된 소포 입 니 다.배달 순 서 는 중요 하지 않 고 택배 기사 인 작은 형 이 소 포 를 받 는 순서 도 걱정 소포 와 같은 순 서 를 보장 할 수 없다.
    따라서 UDP 협 의 는 데이터 의 정확성 에 대한 요구 가 높 지 않 지만 데이터 전송 속도 와 실효 성에 대한 요구 가 매우 높 은 네트워크,예 를 들 어 우리 가 흔히 볼 수 있 는 인터넷 채 팅 방,온라인 영화 등에 적용 된다.
    이 는 TCP 프로 토 콜 이 인증 에 추가 비용 이 들 어 전송 속도 가 느 려 질 수 있 고 UDP 프로 토 콜 은 일부 패 킷 손실 이 있 거나 전송 순서 가 다 르 더 라 도 이 통신 에 심각 한 해 를 끼 치지 않 기 때문이다.
    이것 이 바로 TCP 가 안전 이 아니 라 신뢰 할 수 있다 고 말 하 는 이유 이다.UDP 는 신뢰 할 수 있 는 것 이 아니 라 안전 하 다.
    여기 서 주의해 야 할 것 은 일부 방화벽 과 공유 기 가 현지에서 패 킷 으로 전송 되 는 것 을 허용 하지 않 는 것 으로 설정 되 어 있 기 때문에 UDP 연결 에 문제 가 발생 하면 해당 네트워크 가 UDP 프로 토 콜 을 허용 하 는 지 확인 해 야 한 다 는 것 이다.
    포트 와 소켓
    이 두 명 사 를 처음 들 었 을 때 친구 들 은 잘 모 르 겠 지만 여기 서 통속 적 인 예 를 들 어 소켓 은 전원 콘센트 와 같 아서 원래 복잡 한 클 라 이언 트 서버 단 을 이 콘센트 로 연결 합 니 다.
    일반적으로 한 대의 컴퓨터 에 있어 서 네트워크 에 단일 하 게 연 결 된 물리 적 연결 만 있 고 모든 데 이 터 는 이 연결 을 통 해 내부,대외 적 으로 특정한 컴퓨터 에 전달 된다.이것 이 바로 포트 의 정의 이다.네트워크 프로 그래 밍 에서 포트(Port)는 실제 존재 하 는 것 이 아니다.그 는 가상 연결 장치 에 불과 하고 포트 는 0~65535 사이 의 정수 로 규정 된다.예 를 들 어 HTTP 서 비 스 는 일반적으로 80 포트 를 사용 하고 FTP 서 비 스 는 21 포트 를 사용 하기 때문에 한 컴퓨터 가 다양한 서 비 스 를 제공 할 때 클 라 이언 트 는 서로 다른 포트 를 통 해 서버 에 연 결 된 어떤 서비스 에 연결 되 는 지 확인한다.
    사실은 포트 에 도 어느 정도 신경 을 써 야 한다.예 를 들 어 0~1023 사이 의 포트 는 보통 유명한 네트워크 서비스 와 응용 에 사용 되 고 사용자 의 일반 네트워크 응용 프로그램 은 1024 이상 의 포트 수 를 사용 해 야 한다.이렇게 하 는 목적 도 포트 번호 가 다른 응용 이나 시스템 서비스 에 사용 되 는 포트 와 충돌 하지 않도록 하 는 것 이다.
    포트 의 사용 은 아래 그림 과 같다.

    네트워크 프로그램 에 있 는 소켓(Socket)은 응용 프로그램 과 포트 를 연결 하 는 데 사용 된다 고 밝 혔 다.같은 소켓 도 가상의 연결 장치 로 JAVA 프로 그래 밍 에서 소켓 을 클래스 로 추상 화 할 수 있다.우 리 는 프로그램 개발 을 할 때 소켓 클래스 대상 만 만 들 면 소켓 을 사용 할 수 있다.
    아래 그림 으로 소켓 을 간단하게 표시 할 수 있 습 니 다.

    자,인터넷 통신 기반 에 대한 설명 은 바로 이것 입 니 다.나중에 회색 늑대 도 TCP 와 UDP,MQTT 프로 토 콜 을 사용 하여 네트워크 프로그램 을 작성 하 는 방법 을 공유 할 것 입 니 다.
    인터넷 프로 그래 밍 에 대해 알 아야 할 기초 지식 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 인터넷 프로 그래 밍 기초 지식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기