2022.08.23/자바 정리/네트워킹 사용법

Jimin·2022년 8월 23일
0

비트캠프

목록 보기
27/60
post-thumbnail

네트워킹 사용법


포트번호

컴퓨터에서 네트워크 연결을 기다리는 프로그램의 식별번호이다.
OS는 이 번호를 가지고 데이터를 받을 프로그램을 결정한다.

  • 0 ~ 1023 (well-known port)
  • 특정 프로그램이 관습적으로 사용하는 포트 번호
  • 프로그램을 작성할 때 가능한 이 포트 번호를 사용하지 말아야 한다.
    예) 7(echo), 20(FTP 데이터 포트), 21(FTP 제어포트), 23(telnet),
    25(SMTP), 53(DNS), 80(HTTP), 110(POP3), 143(IMAP), HTTPS(443), SSL-telnet(992), ...
  • 1024 ~ 49151 (registered port)
    • 일반적인 통신 프로그램을 작성할 때 이 범위 포트 번호를 사용한다.
    • 다만 이 범위에 번호 중에서 특정 프로그램이 널리 사용하는 번호가 있다.
      가능한 그 번호도 피하라!
      예) 8080(proxy), 1521(Oracle), 3306(MySQL), ...
  • 49152 ~ 65535 (dynamic port)
    • 통신을 하는 프로그램은 반드시 포트번호를 가져야 한다.
      그래야 OS가 해당 프로그램을 구분할 수 있다.
    • 따라서 클라이언트 프로그램도 포트번호를 갖는데, 프로그램에서 결정하는 것이 아니라, OS로부터 자동 발급 받는다.
    • 이 범위의 포트번호는 클라이언트가 OS로부터 자동 발급 받는 포트 번호이다.
  • pid: process id

Proxy 서버


OS(운영체제)와 App. 그리고 API 호출


Application은 결국 OS의 메서드를 호출한다. → 즉, 실행시 운영체제의 영향을 받는다.


Printer 출력 과정


Networking 출력


출력은 Blocking 안걸리고 리딩은 Blocking 걸린다.

in.read() : reading을 할때는, 상대방이 출력할 때까지 Reading에서 걸려서 넘어가지 않는다.
out.write() :하지만 출력은 상대방의 상태여부와 상관없이 항상 출력된다.


Localhost loop back


NIC: Network Interface Card


버퍼 사용시 입출력


TCP/IP

데이터를 전송하기 쉬운 크기로 잘라서 패킷으로 포장한다.


Stateful

Stateful 방식은 한 Client와 연결이 끊어져야만 다른 Client와 통신할 수 있다.

Stateful 방식의 장점: Server측에 계산 결과 유지


Client 연결이 유지되는 동안에는 변수의 값을 유지할 수 있다.
→ 즉, client와의 작업 정보를 유지할 수 있다.


Stateless

한 번 연결이 한 요청만 처리한다.

Client 구분하기


Collaboration Diagram → Sequence Diagram: 시간의 흐름에 따라 실행과정을 표형하기에 적합하다.


CS

프로토콜(protocol)

클라이언트와 서버 간의 데이터를 주고 받는 통신 규칙

closable 객체를 객체별로 try문으로 묶어주는 이유?

하나의 try문으로 묶어버리면 하나의 객체를 닫다가 오류가 나게됐을 경우, 나머지 객체들은 닫을 수 없게 되기 때문이다.

profile
https://github.com/Dingadung

0개의 댓글