Server : TCP, DB(oracle), Web(tomcat)
TCP : Transmission Control Protocol
전송 제어 규약
통신 : 송신, 수신
종단 시스템 : host
네트워스 상에서 더 연장되지 않는 기기
PC, Smart Phone,Scanner, Printer
Router : hardware
host간의 상호 테이터를 교환 할 수 있도록 하는 장비
internet : 포괄적인 통신
www : (World Wide Web)
URL : Uniform Resource Locater(IP대신 사용)
통신규약
TCP : Transmission COntrol Protocol 동기통신
UDP : User Datagram Protocol 비동기 통신(빠름, 사용코드 간단)
*TCP
신사적인 Protocol
전화 -> 상대방 -> 연결 -> 통신
동기화 send(보낸다) -> recv(받는다) 처리순서가 일치해야 한다(상대방이 준비가 된 상태에서 연결이됨)
채팅에서 주로 사용, 데이터의 경계가 없음 -> Data 용량의 한계가 없다.
상대방이 받지 못하면 자동 재전송. 받으면 받음을 알 수 있음
1대 1 통신만 가능.
채팅, String통신(문자열 통신), Object통신(객체를 보냄- dto등)
*UDP
비 연결형 Protocol -> 수신여부상관없이 우선 보냄
편지의 기능, 지상파 방송
데이터의 경계가 있다
1대 1통신(unicast)
1대 다통신(broadcast)
다대 다(multicast)
7 Layer (설정하는것들)
1 계층 - Physical Layer 물리 계층
2 계층 - Data Link Layer 주소(IP)를 헤더에 첨부하는 계층
3 계층 - Network Layer 네트워크 IP를 찾아가게 설정 -> address
4 계층 - Transport Layer 네트워크 Port
5 계층 - Session Layer 저장공간, 세션을 동기화
6 계층 - Presentation Layer 보안, 압축, 확장
7 계층 - Application Layer 프로그램
*외우기*Packet(묶음)
보낸 주소들을 묶어 쌓아 둠
(제어정보, 데이터들이 결합 된 형태로 전송이 되는 실제 데이터)
ex) IP, Port, String, Dto(Object)
IP : Internet Protocol -> address -> v4, v6 두종류
IPv4 : 0~255까지 4개 XXX.XXX.XXX.XXX
IPv6 : 0~? 까지 6개 XXX.XXX.XXX.XXX.XXX.XXX
IP (각 컴퓨터를 구분하기 위한 번호)
Port Number(각각의 IP에서 프로세스(프로그램)들을 구분하기 위한 번호)
IP주소는 internet상에 존재하는 host(PC)를 식별 할 수 있으나
최종주체인 Process(프로그램)를 식별하지 못하기 때문에
Process를 구별하기 위해서 지정된 수치( 0~1024 : system번호)외의 수치를 지정하여 구분해줌
*중요*Socket (프로그램으로 보면됨-포트넘버보유)
->유닉스(File) send/write , recv/read
통신의 주체. 통신을 하기 위한 Object
IP, PortNumber, TCP/UDP
통신순서
Server Client
1. Socket 버전 확인 1. Socket 버전 확인
2. Binding : IP, Port설정(번호할당,연결)
3. Listen (통신 시작- 뚜뚜...)
4. Accept <-----(방향)---- 2. Connect
5. recv(받는다), rea <-----(방향)---- 3. send(보내다), write
6. send -----(방향)-----> 4. recv
DNS(Domain Name System) Server
IP -> Stirng
------------------------------------------------------------------------------------------------------------------
server는 항상 accept상태를 유지 //서버
//client가 먼저 서버에 접속함.
///서버는 항상 accept상태를 유지
//항상 recv먼저
//clientsocket으로 들어온 소켓 받아줌
//readline으로 계속 recv체크 -> Thread를 이용해준다. 각각(recv, write)
//클라이언트
//Data를 항상 받을 준비를 해줘야 함
//thread를 항상 돌려주는데 recv가 항상 먼저
//TCP
//client가 server에 패킷을 보내면 수신이 잘 되었는지 확답이 옴
//확답이 안오면 재전송함
'JAVA > 기초 프로그래밍' 카테고리의 다른 글
문자열을 전송받아 다른 클라이언트에게 문자열을 보내기 (0) | 2020.06.16 |
---|---|
ID입력받아 채팅창에서 채팅하기 (0) | 2020.06.16 |
쓰레드//어레이리스트//채팅 (0) | 2020.06.15 |
쓰레드// Object (0) | 2020.06.15 |
쓰레드 예) (0) | 2020.06.15 |